Kotlin通用范围为Class

以下generics不能编译。 这里的语义错误是什么?

函数调用

start(MainActivity.javaClass) // <== Doesn't compile 

方法定义

 // Definition public fun  start(activityClass: Class) { startActivity(Intent(this, activityClass)) } 

编译器错误

 Error:(43, 9) Type parameter bound for T in fun  start(activityClass: java.lang.Class): kotlin.Unit is not satisfied: inferred type com.mobsandgeeks.hellokotlin.MainActivity.  is not a subtype of android.app.Activity 

javaClass已被弃用。 用这个代替:

 val i = Intent(this@Activity, Activity::class.java) startActivity(i) 

使用javaClass()而不是MainActivity.javaClass

另外一个选择:

 inline public fun  start() { startActivity(Intent(this, javaClass())) } start() 

它唯一的办法是我这样做:

 val intent = Intent(this, NextActivity::class.java) startActivity(intent) 

没有其他解决方案已经工作,包括使用javaClass