Parámetro de conflicto de visibilidad efectiva entre java y kotlin
Estoy tratando de anular la function bindView
:
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem open class SpinnerDrawerItem() : PrimaryDrawerItem(), View.OnClickListener { override fun bindView(viewHolder: ViewHolder?) { super.bindView(viewHolder) // Do things } }
De PrimaryDrawerItem pero obtengo:
¿Por qué?
PrimaryDrawerItem.ViewHolder
está protected
. Y el método bindView()
, que es public
, acepta PrimaryDrawerItem.ViewHolder
. Pero un llamador externo general no puede invocar este método porque no puede derivar una class anidada protected
PrimaryDrawerItem.ViewHolder
. Kotlin prohíbe dicho comportamiento y requiere que la visibilidad del parámetro sea igual a la visibilidad del método o que la visibilidad de los parameters sea menor o igual a la visibilidad del método.
En su caso, debe hacer que PrimaryDrawerItem.ViewHolder
public
o hacer que PrimaryDrawerItem.bindView()
protegido.