如何将kotlin类或kotlin类实例作为参数传递
请参阅以下代码:
class Ex() { fun m(i: Object) { } } class Ex2() { fun m2() { Ex().m(this) } }
如何让Ex#m接收Ex2实例,我现在可以通过this.javaClass作为参数,但是太麻烦了,什么是“this”的Class
更新
改变fun m(i: Object)
为fun m(i: Ex2)
可以修复当前的例子,但是我希望KotlinObjectClass让Ex#m接收变量类型的参数
更新使用Any
可以修复“变量类型”的问题,但我更希望更确切地说,我希望只接收类型KotlinClassObjectInstance
你可以使用像这样的通用类型参数 :
class Ex() { inline fun <reified T> m() { println(T::class) } } class Ex2() { fun m2() { Ex().m<Ex2>() } }
现在Ex2().m2()
将打印class Ex2
这是你在找什么?
interface MyKotlin class Ex { fun m(i: MyKotlin) { } } class Ex2 : MyKotlin { fun m2() { Ex().m(this) } } class Ex3 : MyKotlin { fun m3() { Ex().m(this) } }