Class<的语法是什么? ? extends class_name>在kotlin?

时间:2017-08-14 01:04:30

标签: class kotlin

我正在尝试创建一个Arraylist,它接受从Word_Class继承的任何类变量,但它不起作用:

var lst = ArrayList<Class<Word_Class>>();
lst.add(Class<Noun_Class>);

我正在寻找Class&lt;的语法? extends class_name&gt;在kotlin

1 个答案:

答案 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