如何从java中的静态初始化块返回

我想从静态块返回。

看起来return和break语句不起作用。 有没有其他选择。

我知道糟糕的解决方法可能是创建一个标志并检查标志是否继续。

我知道初始化块不是用于进行计算,而是用于在类加载期间进行基本初始化。

将代码委托给私有静态方法:

 static { initialize(); } private static void initialize() { foo(); if (someCondition) { return; } bar(); } 

而不是使用return只是将条件代码包装在if

静态初始化程序没有复杂的业务,所以它可能是一个坏主意(即使你不购买SESE)。

实现回报的最小方式是使用带标签的rest时间。

 static { init: { ... break init; } } 

它们非常罕见,通常出现在嵌套for循环中。 新颖性可能会让读者感到有点狡猾。

您无法从静态初始化程序块返回。 没有地方可以回归。 但它不应该是必要的。 您应该能够将代码重组为“单入口,单出口”。

你不能从静态块返回,但最好使用一些其他函数来执行你的逻辑并返回到块。