Java 对If条件使用Final

Java 对If条件使用Final,java,Java,我知道如何使用final设置int,如下所示: final int junk = whatever ? 1 : 2; final int junk = whatever ? 1 : whatever2 ? 3 : 4; .... and so on 但是,如何在更复杂的if语句中执行此操作?如何使用Java“final”在if()条件语句中设置值 示例: final int junk; if(whatever) { junk = 1; } else { junk = 2; }

我知道如何使用final设置int,如下所示:

final int junk = whatever ? 1 : 2;
final int junk = whatever ? 1 : whatever2 ? 3 : 4; .... and so on
但是,如何在更复杂的if语句中执行此操作?

如何使用Java“final”在if()条件语句中设置值 示例

final int junk;
if(whatever) {
    junk = 1;
} else {
    junk = 2;
}
final int junk;
if(whatever) {
    junk = 1;
} else {
    if(however) {
        junk = 2;
    } else {
        junk = 3;
    }
}
您可以将最终值设置嵌套到任何深度,如果您复制或跳过任何路径,Java将标记错误

示例

final int junk;
if(whatever) {
    junk = 1;
} else {
    junk = 2;
}
final int junk;
if(whatever) {
    junk = 1;
} else {
    if(however) {
        junk = 2;
    } else {
        junk = 3;
    }
}

我尽可能使用
final
进行局部变量闭包,以确保不会意外地重复使用变量。

您可以使用
运算符进行嵌套if语句,如:

final int junk = whatever ? 1 : 2;
final int junk = whatever ? 1 : whatever2 ? 3 : 4; .... and so on
(如果你说“复杂”就是这个意思)


虽然,当您遇到“复杂”情况时,使用
if-else
比使用
操作符更具可读性。

@Pix您所说的更复杂到底是什么意思?一个例子可能是?你尝试了什么失败了?他可能是指
无论什么
都可能是一个昂贵的表达式,不应该计算两次。我想这就是所谓的blank final。