Java 如何将kotlin类或kotlin类实例作为参数传递
请参阅以下代码:Java 如何将kotlin类或kotlin类实例作为参数传递,java,kotlin,Java,Kotlin,请参阅以下代码: class Ex() { fun m(i: Object) { } } class Ex2() { fun m2() { Ex().m(this) } } 如何让Ex#m接收Ex2实例,我现在可以将this.javaClass作为参数传递,但太麻烦了,“this”的类是什么 更新 将fun m(i:Object)更改为fun m(i:Ex2)可以修复当前示例,但我希望KotlinObjectClass使Ex#m接收变量
class Ex() {
fun m(i: Object) {
}
}
class Ex2() {
fun m2() {
Ex().m(this)
}
}
如何让Ex#m接收Ex2实例,我现在可以将this.javaClass作为参数传递,但太麻烦了,“this”的类是什么
更新
将fun m(i:Object)
更改为fun m(i:Ex2)
可以修复当前示例,但我希望KotlinObjectClass使Ex#m接收变量类型参数
更新
使用
Any
可以解决“变量类型”问题,但我希望更准确地说,我希望只接收类型KotlinClassObjectInstance这就是您要找的吗
interface MyKotlin
class Ex {
fun m(i: MyKotlin) {
}
}
class Ex2 : MyKotlin {
fun m2() {
Ex().m(this)
}
}
class Ex3 : MyKotlin {
fun m3() {
Ex().m(this)
}
}
您可以这样使用:
class Ex(){
内联fun m(){
println(T::class)
}
}
类Ex2(){
乐趣m2(){
Ex().m()
}
}
现在
Ex2().m2()
将打印类Ex2
您想完成什么?没有一种类型只描述用Kotlin编写的类的实例。@yole我希望知道“this”的类您可以I.javaClass
找到任何对象的类。请通过将更新合并到问题中来编辑该问题。在当前的状态下,不清楚您想做什么。如果您的示例使用了更好的类名,并且这些类名不是很短,也不是很相似。不,正如“更新”所说的,这种方式可能会使事情更复杂。请将问题改写为清楚。在这个问题上我们不需要修改历史,很难理解。只需创建一个更完整的示例代码。
class Ex() {
inline fun <reified T> m() {
println(T::class)
}
}
class Ex2() {
fun m2() {
Ex().m<Ex2>()
}
}