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