java类DrawerItem需要一个类型参数
我有一个JAVA
类:
public abstract class DrawerItem<T extends DrawerAdapter.ViewHolder> {
protected boolean isChecked;
public abstract T createViewHolder(ViewGroup parent);
public abstract void bindViewHolder(T holder);
public DrawerItem<T>setChecked(boolean isChecked) {
this.isChecked = isChecked;
return this;
}
public boolean isChecked() {
return isChecked();
}
public boolean isSelectable(){
return true;
}
}
从KOTLIN
文件中,我这样称呼它:
private fun createItemFor(position :Int): DrawerItem {
return SimpleItem(screenIcons[position], screenTitles[position])
.withIconTint(R.color.bottom_menu_unselected)
.withTextTint(R.color.black)
.withSelectedIconTint(R.color.bottom_menu_unselected)
.withSelectedTextTint(R.color.bottom_menu_unselected)
}
我得到一个错误:One type argument expected for class DrawerItem<T : DrawerAdapter.ViewHolder!>
我错过了什么?我不确定我应该具体说明什么才能使它起作用
# 1 楼答案
DroperItem有一个类型,Kotlin不允许原始类型。在大多数可以在Java中使用原始类型的地方,可以在Kotlin中使用星形投影,如下所示:
如果需要以某种方式使用它,即需要知道
SimpleItem.createViewHolder()
返回的ViewHolder的类型,则需要专门指定该类型(SimpleItem使用的类型是什么),或者可以使用=
来隐式指定返回类型,这样就不必考虑它: