Các generics sau không biên dịch. Cái gì là ngữ nghĩa sai ở đây?Giới hạn chung của Kotlin cho Lớp
Chức năng gọi
start(MainActivity.javaClass) // <== Doesn't compile
Phương pháp Định nghĩa
// Definition
public fun <T : Activity> start(activityClass: Class<T>) {
startActivity(Intent(this, activityClass))
}
Lỗi trình biên dịch
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
Cảm ơn, mà làm việc. Tôi nên sử dụng tham số kiểu di truyền nào nếu tôi muốn truyền trong MainActivity.javaClass? –
Nếu bạn ngụ ý sự tương tự của 'MainActivity.class' của Java, thì hãy sử dụng' javaClass() 'trong Kotlin –
Andrey, đúng vậy. Tôi muốn hỏi, làm thế nào để thay đổi chữ ký chức năng cho mã được đề cập ở trên để biên dịch? –