我正在尝试创建一个Arraylist,它接受从Word_Class继承的任何类变量,但它不起作用:
var lst = ArrayList<Class<Word_Class>>();
lst.add(Class<Noun_Class>);
我正在寻找Class&lt;的语法? extends class_name&gt;在kotlin
答案 0 :(得分:5)
您可以在Kotlin中使用out type projection。它相当于Java中的? extends T
,例如:
// v--- out type projection
var lst = ArrayList<Class<out Word_Class>>()
要获取Java类,您应该使用KClass#java
,例如:
// v--- get a KClass instance
lst.add(Noun_Class::class.java)
// ^--- get java.lang.Class instance