添加finally块会导致IntelliJ报告"变量可能未被分配"

时间:2018-06-07 15:41:02

标签: intellij-idea groovy

在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'可能没有被分配"。

我在两个方面感到困惑:

  • 如果使用功能等效的if / else语句替换switch语句,警告将不再显示
  • 如果您将finally替换为catch (ignored),警告将不再显示

对我而言,这种行为毫无意义。有人可以解释为什么警告首先出现以及为什么更换上面的内容会修复它?

我正在运行IntelliJ v2018.1.2(Ultimate)和Groovy插件v9.0。

0 个答案:

没有答案