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

时间:2012-06-20 11:07:26

标签: java static initialization

我想从静态块返回。

看起来返回和中断声明不起作用。有没有其他选择。

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

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

5 个答案:

答案 0 :(得分:18)

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

static {
    initialize();
}

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

答案 1 :(得分:7)

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

答案 2 :(得分:1)

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

实现回报的最小方法是使用标记的中断。

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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