У меня есть следующий случай.
Базовый класс для моего объекта.
abstract class A{
lateinit var x: Animal
fun defineStuff() {
x = Factory().createFor(getAnimalType())
}
abstract fun <T: Animal> getAnimalType(): Class<T>
}
У меня и Животное, и Собака определены так:
open class Animal
class Dog : Animal()
Фабрикакласс предоставляется для меня моей рамкой. это подпись:
fun <T: Animal> createFor(animalType: Class<T>): T
и теперь я создал следующий класс:
class B : A() {
override fun <T: Animal> getAnimalType(): Class<T> {
return Dog::class.java as Class<T>
}
}
следующая строка выделена моим линтером как "Непроверенный класс"
Значит ли это, что я делаю что-то не так? Есть ли лучший способ использовать дженерики в Kotlin, которые не будут выдавать предупреждение? или я должен просто игнорировать это.