如果我只想测试一段 Java 代码,有没有办法在不将其放入函数的情况下运行它?
Public static void main(String[] args){
//block of code
}
另外,如何执行下面的静态代码块?
static {
//block of code
}
如果我只想测试一段 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 所说的“按文本顺序”。
一旦类被加载或初始化,静态块就会被执行。所以如果你想测试静态块内部的代码,最好的方法是创建一个类的实例。
如果你想测试你的代码,最好的方法是使用一些测试框架,比如 JUnit 或 testng。
static
块将在您的类首先被加载时执行。因此它可用于数据库实例化等,您可以确定此块将在您的其他代码运行之前执行。{...}
当您尝试创建实例时,简单块将运行。new
这里首先将调用此块,然后将调用包含关键字的行下方编写的代码。public class Test3 {
public static void main(String[] args) {
Test3 obj = new Test3();
}
{
System.out.println("hussain akhtar wahid");
}
}
public class StaticBlockTest {
/*
* Some Code Goes Here
*
* */
static {
System.out.println(" Static Block Executed ");
System.exit(0);
}
}
静态块无需 main 方法即可执行,您需要传递 System.exit(0) 来终止当前正在运行的 Java 虚拟机以退出程序执行。