IC *_*ice -3 enums static kotlin
var1我尝试使用两个枚举变体进行访问:A2和A3。
class OutA {
var var1 = ""
inner class A {
init {
print(var1)
}
}
enum class A2 {
;
init {
print(var1)//unresolved reference:var1
}
}
inner enum class A3 {//Modifier 'inner' is not applicable to 'enum class'
;
init {
print(var1)
}
}
}
Run Code Online (Sandbox Code Playgroud)
但他们无法编译。
A2 报告unresolved reference:var1和另一个条件说Modifier 'inner' is not applicable to 。
为什么无法从枚举var1范围访问外部属性?
编辑:删除了屏幕截图,更新了标题和描述以促进重新开放问题。
枚举常量无需显式初始化即可存在,而OutA需要首先创建周围的类。您无法从静态上下文访问非静态值。使该类成为单例,即 an object,将使代码编译:
object OutA {
var var1 = ""
enum class A2 {
;
init {
print(var1)
}
}
}
Run Code Online (Sandbox Code Playgroud)
OutA这是可行的,因为编译器正在创建 的一个实例(唯一的一个) ,并且它var1可供枚举访问。
| 归档时间: |
|
| 查看次数: |
1708 次 |
| 最近记录: |