[英]How To Init Abstract Class Object in Kotlin Like JAVA
我是 kotlin 新手,剛從 android/java 轉到 android/kotlin。 Kotlin 確實是一種簡單的語言,但在某些地方它的支持不夠或它的建議不起作用。 我正在編寫一個代碼,我將在其中調用具有參數構造函數的通用抽象類。 泛型類是用 Java 編寫的,我可以從 java 類中初始化該類而不會出現任何錯誤,但是當我從 kotlin 中初始化泛型類時,它會出現類型不匹配錯誤。
1st 讓我向你展示我的 java 代碼,沒有錯誤
GenericAdapter<String, NotificationFragmentBinding> transmissionAdapter;
transmissionAdapter = new GenericAdapter<String, NotificationFragmentBinding>(getContext(),carsList) {
@Override
public int getLayoutResId() {
return 0;
}
@Override
public void onBindData(String model, int position, NotificationFragmentBinding dataBinding) {
}
@Override
public void onItemClick(String model, int position) {
}
}
現在讓我向你展示我的 kotlin 代碼有錯誤
var notificationGenericAdapter: GenericAdapter<String, NotificationFragmentBinding>? = null
notificationGenericAdapter = object : GenericAdapter<String?, NotificationFragmentBinding?>(this, list) {
override fun getLayoutResId(): Int {
return 0
}
override fun onBindData(model: String?, position: Int, dataBinding: NotificationFragmentBinding?) {}
override fun onItemClick(model: String?, position: Int) {}
}
Kotlin 代碼給了我類型不匹配錯誤。
感謝@Stanislav Bondar
那是一個愚蠢的錯誤
正確的版本在這里
notificationGenericAdapter = object : GenericAdapter<String, NotificationFragmentBinding>(this, list) {
override fun getLayoutResId(): Int {
return 0
}
override fun onBindData(model: String?, position: Int, dataBinding: NotificationFragmentBinding?) {}
override fun onItemClick(model: String?, position: Int) {}
}
字符串和字符串有錯誤? 我用的是字符串? 但是當我分配時,我使用的是沒有空檢查的字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.