我想从静态块返回。
看起来 return 和 break 语句不起作用。有没有其他选择。
我知道不好的解决方法可能是创建一个标志并检查标志是否继续。
我了解初始化块不是用于进行计算,而只是用于类加载期间的基本初始化。
我想从静态块返回。
看起来 return 和 break 语句不起作用。有没有其他选择。
我知道不好的解决方法可能是创建一个标志并检查标志是否继续。
我了解初始化块不是用于进行计算,而只是用于类加载期间的基本初始化。
将代码委托给私有静态方法:
static {
initialize();
}
private static void initialize() {
foo();
if (someCondition) {
return;
}
bar();
}
而不是return
只使用将条件代码包装在if
.
静态初始化器没有复杂的业务,所以这可能是个坏主意(即使您不购买 SESE)。
实现回报的最小方法是使用标记中断。
static {
init: {
...
break init;
}
}
它们非常罕见,通常出现在嵌套for
循环中。这种新颖性可能会让读者知道正在发生一些有点狡猾的事情。
您不能从静态初始化程序块返回。无处可归。但这不应该是必要的。您应该能够将代码重组为“单入口,单出口”。
您不能从静态块返回,但最好使用其他一些函数来执行您的逻辑并返回到块。