如何使用 Kotlin 中的get()定义一个属性,它返回一个类,我在下面尝试,但它没有编译
val targetActivity: Class<?>
get() = MyActivity.class
答案 0 :(得分:4)
您可以使用Class References
最基本的反射功能是获取Kotlin类的运行时引用。要获得对静态已知Kotlin类的引用,可以使用类
文字语法:
val c = MyClass::class
或使用 Class<*>
代替 Class<?>
val targetActivity: Class<*>
get() = MyActivity::class
答案 1 :(得分:3)
请注意,在Kotlin中您必须使用star projection,问号<?>
将无效;也可以像这样使用class references:
val targetActivity: KClass<*>
get() = MyActivity::class
如果您想拥有Java Class
,请使用.java
属性:MyActivity::class.java
答案 2 :(得分:1)
在获得Kotlin KClass以返回Java类
之后,您需要使用.javaval targetActivity: Class<*>
get() = MyActivity::class.java
或者,如果您想更具体地了解返回类型
val targetActivity: Class<MyActivity>
get() = MyActivity::class.java