如何从Java中的静态初始化块返回(How to return from a static init

2019-06-25 14:41发布

我想从静态块返回。

貌似回归和break语句不工作。 是否有任何替代。

我知道坏的解决方法可以创建一个标志,检查标志,以继续。

据我所知,初始化块并不意味着做计算,但只为类加载过程中基本的初始化。

Answer 1:

委托代码到一个私人静态方法:

static {
    initialize();
}

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


Answer 2:

而不是使用的return只是包裹在你的条件代码if



Answer 3:

静态initialisers没有生意正在变得复杂,所以它可能是一个坏主意(即使你不买SESE)。

实现收益最小的方法是使用一个标签break。

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

他们是非常罕见的,通常出现在嵌套for循环。 新颖性可能会通风报信的东西有些冒险是怎么回事读者。



Answer 4:

你不能从静态初始化块返回。 有无处返回。 但它不应该是必要的。 你应该能够调整你的代码是“单入口,单出口”。



Answer 5:

您无法从静止块,但更好的恢复使用,将执行你的逻辑,并返回到块中的一些其他功能。



文章来源: How to return from a static initialization block in java