Следующие обобщения не компилируются. Что здесь семантически неправильно?Общие рамки Kotlin для класса
Вызов функции
start(MainActivity.javaClass) // <== Doesn't compile
Метод определения
// Definition
public fun <T : Activity> start(activityClass: Class<T>) {
startActivity(Intent(this, activityClass))
}
Ошибка компилятора
Error:(43, 9) Type parameter bound for T in fun <T : android.app.Activity>
start(activityClass: java.lang.Class<T>): kotlin.Unit is not satisfied:
inferred type com.mobsandgeeks.hellokotlin.MainActivity.
<class-object-for-MainActivity> is not a subtype of android.app.Activity
Спасибо, что работал. Какой параметр генетического типа следует использовать, если я хочу перейти в MainActivity.javaClass? –
Если вы имеете в виду аналог Java 'MainActivity.class', тогда используйте' javaClass() 'в Kotlin –
Андрей, это верно. Я хотел спросить, как сменить подпись функции для вышеупомянутого кода для компиляции? –