我正在尝试覆盖 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
受保护
。 bindView()
方法(public
)接受 PrimaryDrawerItem.ViewHolder
。但是一般的外部调用者无法调用此方法,因为它无法引用 protected
嵌套类 PrimaryDrawerItem.ViewHolder
。 Kotlin 禁止此类行为,并要求要么使参数可见性等于方法可见性,要么将参数可见性降低到小于或等于方法可见性。
在您的情况下,您必须使 PrimaryDrawerItem.ViewHolder
public
或使 PrimaryDrawerItem.bindView()
protected 。
关于java - java和kotlin参数有效可见性冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722336/