从静态初始化程序返回

时间:2012-04-02 11:52:10

标签: java

  

可能重复:
  Returning in a static initializer

有没有办法在Java中退出静态初始化程序,类似下面的代码(不能编译):

public class Test {

    private static int i = 1;

    static {
        if (i == 0) {
            return; // DOESN'T COMPILE
        }
        i = 0;
    }
}

ps:是的我知道,这个例子毫无意义,i == 0此时总是假的,但那不是重点!

1 个答案:

答案 0 :(得分:2)

快速而肮脏的方法是,滥用for循环并使用其break语句进行流控制:

static
{
    int i = 0;

    for(;;)
    {
        if(i == 0)
            break;
        // more code
        // more conditions
        // don't forget the final break
        break;
    }
}