【发布时间】:2020-05-17 17:26:49
【问题描述】:
我使用枚举作为参数,我收到此错误
错误:从第 5 版开始,'enum' 是关键字,不能用作标识符
private final kotlin.jvm.functions.Function1<com.tylertech.newworld.mobility.enum.CustomAlertDialogEvents, kotlin.Unit> itemClicked = null;
下面是我的枚举类
enum class CustomAlertDialogEvents(var resId: Int, val value: Int) {
ACTION_OPEN_SETTINGS(R.string.open, 0),
ACTION_CLOSE_SETTINGS(R.string.close, 1)
}
我是这样使用的
private val itemClicked: (CustomAlertDialogEvents) -> Unit
知道为什么会出现这个错误吗?
【问题讨论】:
-
我认为,您不应该混合使用 Kotlin 和 Java。它不能在
enum包中创建Java 类。所以,你不应该在 Java 中使用CustomAlertDialogEvents类。 -
我的整个项目都在 kotlin 中。
-
private final kotlin.jvm.functions.Function1<com.tylertech.newworld.mobility.enum.CustomAlertDialogEvents, kotlin.Unit> itemClicked = null;在 Java 中。如果是 Kotlin,就没有错误。也许编译器创建了这个方法?同意,这很奇怪。 -
您可以从零开始创建一个“hello world”项目并添加这些类。它会编译。
-
我认为问题可能与使用 R.string.open/close 导致在同一个包中生成 Java 代码有关。也许工作的案例不使用它(或者只使用来自developer.android.com/reference/kotlin/android/R.string的标准案例)?