java - java和kotlin参数有效可见性冲突

标签 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

为什么?

最佳答案

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/

相关文章:

java - 如何使用二维指针通过 JNA 调用 C 函数?

java - 如何平滑上下移动 android View 8 次?

java - 如何使用我自己的服务器在 Android 应用程序中设置 cloudboost?

java - 提供抽象方法的实现但限制可见性

java - 从 jtable 检索 boolean 值

java - 如何将 Jasper 报告添加到 JDeveloper

java - _ah/admin 不适用于 Openshift?

android - 使用 GRAPH API Android 在 facebook 上分享全尺寸照片

javascript - CSS隐藏表格并显示tr

css - 使一个 div 可见,另一个不可见