Как передать класс класса kotlin или экземпляр класса kotlin в качестве аргументов

см. следующий код:

class Ex() { fun m(i: Object) { } } class Ex2() { fun m2() { Ex().m(this) } } 

Как заставить Ex # m получать экземпляр Ex2, теперь я могу передать this.javaClass в качестве аргументов, но это слишком сложно, что такое «этот» класс

Обновить

change fun m(i: Object) to fun m(i: Ex2) может исправить текущий пример, но я надеюсь, что KotlinObjectClass сделает Ex # m полученным аргументом типа переменной

использование обновления Any может исправить вопрос «тип переменной», но я надеюсь, что более точно, я надеюсь получить тип только KotlinClassObjectInstance

Вы можете использовать параметры типа reified, например:

 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) } } . interface MyKotlin class Ex { fun m(i: MyKotlin) { } } class Ex2 : MyKotlin { fun m2() { Ex().m(this) } } class Ex3 : MyKotlin { fun m3() { Ex().m(this) } } . interface MyKotlin class Ex { fun m(i: MyKotlin) { } } class Ex2 : MyKotlin { fun m2() { Ex().m(this) } } class Ex3 : MyKotlin { fun m3() { Ex().m(this) } }