我正在尝试通过名称获取课程。我知道该课程将扩展我的Event课程。对于其他通用的事情,我需要系统知道该类是Event的子类。使用Java,我可能会将其转换为Class<? extends Event>
之类的东西,但是如何使用Kotlin做到这一点呢?
我当前的代码是:
Class.forName(eventClass) as Class<Event> // The as should cast to Class extending Event
我尝试了诸如T:Event或?:Event
之类的事情。答案 0 :(得分:1)
与Class<? extends Event>
等效的Kotlin为Class<out Event>
。
答案 1 :(得分:0)
只要JVM是您的目标,使用Class就可以很好地工作,下面的简短示例演示了这一点:
open class Foo
class Bar: Foo()
fun main() {
val c = Class.forName("fullpackagepath.Bar")
println(c.superclass == Foo::class.java) // true
}