java和kotlin之间的参数有效可见性冲突

时间:2016-04-19 15:06:06

标签: java android visibility kotlin materialdrawer

我正在尝试覆盖bindView功能:

import com.mikepenz.materialdrawer.model.PrimaryDrawerItem

open class SpinnerDrawerItem() : PrimaryDrawerItem(), View.OnClickListener {
  override fun bindView(viewHolder: ViewHolder?) {
    super.bindView(viewHolder)
    // Do things
  }
}

来自PrimaryDrawerItem,但我得到:

enter image description here

为什么?

1 个答案:

答案 0 :(得分:4)

PrimaryDrawerItem.ViewHolderprotectedbindView()方法public接受PrimaryDrawerItem.ViewHolder。但是一般的外部调用者无法调用此方法,因为它无法引用protected嵌套类PrimaryDrawerItem.ViewHolder。 Kotlin禁止此类行为,并要求使参数可见性等于方法可见性,或者要求将参数可见性降低到小于或等于方法可见性。

在您的情况下,您必须PrimaryDrawerItem.ViewHolder public或使PrimaryDrawerItem.bindView()受到保护。