Как выразить `Class <? extends Any>

Я пытаюсь написать что-то вроде этого:

var classList = ArrayList<Class<Any>>() init { classList.add(ClassA::class.java) classList.add(ClassB::class.java) } 

Это вызывает ошибки:

 Type inference failed. Expected type mismatch: inferred type is Class<ClassA> but Class<Any> was expected 

Я могу избавиться от ошибки, выполнив явное действие:

 domainClasses.add(NameIdMapping::class.java as Class<Any>) 

Это дает мне предупреждение «непроверенного броска». Это лучшее, что я могу сделать? Как это сделать чисто?

Используйте out -projection: ArrayList<Class<out Any>> , это в основном эквивалентно Java ? extends ? extends подстановочный знак.

См .: Разница в языковой ссылке.

Intereting Posts
Если isConnected возвращает true, почему Exeption говорит, что он не подключен? Как реализовать репозиторий интерфейса в другом модуле проекта в AndroidStudio с помощью Dagger2 и Kotlin Проблемы подтипа с дженериками в Котлине Запечатанные обобщенные обобщенные классы в котлине, не связанные с внутренними классами Методы статического провайдера Dagger 2 в Котлине Android Recycler View Horizontal Прокрутите до последнего элемента и покажите первый элемент Интересный оператор '===' в Котлине Нажмите элемент RecyclerView в ViewHolder Макеты Anko – отличительные макеты в applyRecursively У меня есть два метода расширения Kotlin для одного и того же класса, но с разными генерическими сигнатурами и компилятор жалуется Как преобразовать 2 массива в карту Преобразование строки, полученной из edittext в Integer на языке Котлин Кинжал при создании проекта Kotlin Один аргумент типа, ожидаемый для класса для абстрактного общего владельца представления kotlin reflection получить список полей