我有一个 Kotlin 对象和一个 Java 类,如下所示:
我可以把 Kotlin 对象或 Java 类传递给这个函数:
KotlinObject.kt
object KotlinObject{
....
}
JavaClass.java
class JavaClass {
...
}
并且有一个用于检查的 Kotlin 函数:
fun foo(cls: Class<*>): Any {
if (cls is kotlin's object) { //how to do this?
return ? //wanna return object's instance
} else {
return cls.newInstance()
}
}
我可以把 Kotlin 对象或 Java 类传递给这个函数:
foo(KotlinObject::class.java)
foo(JavaClass::class.java)
那么有可能确定哪一个是 Kotlin 的对象吗?
INSTANCE
字段,但这并不能给你100%的确定答案。如果你在一个普通的Java类中添加一个静态字段INSTANCE
,你会得到一个错误的结果。 尽管如此,这听起来非常可疑...你能分享一些更多关于为什么你需要它的细节吗?我有一种感觉你在过度思考某些事情。 - Bartek LipinskiKClass
:.kotlin
扩展属性。 - Alexey Romanov