如果我只想测试Java代码块,是否可以在不将其放入函数中的情况下运行它?

Public static void main(String[] args){
//block of code
}


另外,如何执行如下所示的静态代码块?

static {
//block of code
}

最佳答案

您可以创建静态块

public class StackOverflowUser {
    public static StackOverflowUser god;
    static {
        god = new StackOverflowUser("Jon Skeet");
    }
    //Stoof
}


它将在程序的整个生命周期中的某个时候(希望)有所作为。事实是,无法确定何时触发,并且记录不充分,并且可能会从JVM更改为JVM。在您首次调用该类之前,它肯定会触发,但是它可能在调用与JVM初始化之间的任何时间执行。

您也可以只创建构造函数块

public class StackOverflowUser {
    private static ArrayList<StackOverflowUser> users = new ArrayList<StackOverflowUser>();
    {
        users.add(this);
    }
    //Stoof
}


这将在调用构造函数之前(紧接之前)激活。基本上,在对象创建之后,但在初始化之前。不要尝试弄乱太多字段,因为它们不会被设置。

就顺序而言,所有块都以相同的方式工作。一旦第一个程序段被调用,第二个程序段,第三个程序段等等都将跟随,正如Jayan所说的“按文本顺序”。

10-06 14:04