java 和 kotlin 之间的参数有效可见性冲突
Parameter effective visibility conflict between java and kotlin
我正在尝试覆盖 bindView
函数:
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem
open class SpinnerDrawerItem() : PrimaryDrawerItem(), View.OnClickListener {
override fun bindView(viewHolder: ViewHolder?) {
super.bindView(viewHolder)
// Do things
}
}
来自 PrimaryDrawerItem 但我得到:
为什么?
PrimaryDrawerItem.ViewHolder
是 protected
。 bindView()
方法,即 public
,接受 PrimaryDrawerItem.ViewHolder
。但是一般的外部调用者不能调用此方法,因为它不能引用 protected
嵌套的 class PrimaryDrawerItem.ViewHolder
。 Kotlin 禁止这种行为,并要求要么使参数可见性等于方法可见性,要么将参数可见性降低到小于或等于方法可见性。
在您的情况下,您必须使 PrimaryDrawerItem.ViewHolder
public
或 PrimaryDrawerItem.bindView()
受到保护。
我正在尝试覆盖 bindView
函数:
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem
open class SpinnerDrawerItem() : PrimaryDrawerItem(), View.OnClickListener {
override fun bindView(viewHolder: ViewHolder?) {
super.bindView(viewHolder)
// Do things
}
}
来自 PrimaryDrawerItem 但我得到:
为什么?
PrimaryDrawerItem.ViewHolder
是 protected
。 bindView()
方法,即 public
,接受 PrimaryDrawerItem.ViewHolder
。但是一般的外部调用者不能调用此方法,因为它不能引用 protected
嵌套的 class PrimaryDrawerItem.ViewHolder
。 Kotlin 禁止这种行为,并要求要么使参数可见性等于方法可见性,要么将参数可见性降低到小于或等于方法可见性。
在您的情况下,您必须使 PrimaryDrawerItem.ViewHolder
public
或 PrimaryDrawerItem.bindView()
受到保护。