I have an abstract class with a subclass. I want the subclass to define a property with type Class, but its implementation should be a subclass of
Param
. How do I define this?
Copy code
abstract class Params
Copy code
abstract class Parent {
abstract val paramsClass: Class<????> // should be a class that extends Params
}
Copy code
class Subclass : Parent() {
override val paramsClass = MyParams::class.java
}
Copy code
data class MyParams : Params()
l
Lukas Sztefek
03/29/2021, 10:39 AM
Maybe like this?
Copy code
abstract class Params
class MyParams : Params()
abstract class Parent<T : Params> {
abstract val paramsClass: Class<T>
}
class Subclass : Parent<MyParams>() {
override val paramsClass = MyParams::class.java
}