如果我只想测试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所说的“按文本顺序”。