Lpp*_*Edd 7 final field initialization kotlin
使用Java我可能想使用switch语句初始化最终变量:
final String finalValue;
switch (condition) {
case 1:
finalValue = "One";
break;
case 2:
finalValue = "Two";
break;
case 3:
finalValue = "Three";
break;
default:
finalValue = "Undefined";
break;
}
Run Code Online (Sandbox Code Playgroud)
在Kotlin,尝试做同样的事情:
val finalValue: String
when (condition) {
1 -> finalValue = "One"
2 -> finalValue = "Two"
3 -> finalValue = "Three"
else -> finalValue = "Undefined"
}
Run Code Online (Sandbox Code Playgroud)
导致编译错误.
解决方案正在使用该by lazy组合,但这会创建一个新Lazy实例.
val finalValue: String by lazy {
when (condition) {
1 -> "One"
2 -> "Two"
3 -> "Three"
else -> "Undefined"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一目标?
| 归档时间: |
|
| 查看次数: |
2514 次 |
| 最近记录: |