如何在Kotlin中使用get()定义类的types属性

如何在Kotlin中使用get()来定义一个属性,它返回一个类,我在下面尝试,但不是编译

val targetActivity: Class get() = MyActivity.class 

您可以使用Class References

最基本的reflectionfunction是获取Kotlin类的运行时引用。 要获得对静态已知Kotlin类的引用,可以使用该类

字面语法:

 val c = MyClass::class 

或者这个使用Class<*>而不是Class

 val targetActivity: Class<*> get() = MyActivity::class 

请注意,在Kotlin中,您必须使用星形投影 ,问号将不起作用; 也使用这样的类引用 :

 val targetActivity: KClass<*> get() = MyActivity::class 

如果您想拥有一个Java Class ,请使用.java属性: MyActivity::class.java

在获得Kotlin KClass以返回Java类之后,您需要使用.java

 val targetActivity: Class<*> get() = MyActivity::class.java 

或者,如果你想更具体的返回types

 val targetActivity: Class get() = MyActivity::class.java