Какой синтаксис для класса<? расширяет имя_класса> в котлин?

Я пытаюсь создать Arraylist, который принимает любую переменную класса, унаследованную от Word_Class, но она не работает:

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

Я ищу синтаксис для класса в котлине

1 ответ

Вы можете использовать проекцию out type в Kotlin. это эквивалентно ? extends T в Java, например:

//                         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 
Другие вопросы по тегам