在IntelliJ IDEA中粘贴以下Groovy代码:
String x
switch ("hi") {
case "hi":
x = "data" // Assignment is not used
break
default:
throw new RuntimeException()
}
/*if ("hi" == "hi") {
x = "data"
} else {
throw new RuntimeException()
}*/
try {
println x // Variable 'x' might not be assigned
} finally {
/*} catch (ignored) {*/
println x
}
在println x
声明中的第一个try
,我收到了检查警告"变量' x'可能没有被分配"。
我在两个方面感到困惑:
finally
替换为catch (ignored)
,警告将不再显示对我而言,这种行为毫无意义。有人可以解释为什么警告首先出现以及为什么更换上面的内容会修复它?
我正在运行IntelliJ v2018.1.2(Ultimate)和Groovy插件v9.0。