我想静态块被称为前“执行” main()方法。按照Java规则当类加载,然后main()方法被调用的静态块将被执行。有什么办法先“执行”的主要方法,然后静块?
public class StaticDemo {
static {
System.out.println("in static block");
}
public static void main(String args[]){
System.out.println("in main method");
}
}
输出将是....
in static block
in main method
从调用静态块主要方法只产生期望的输出。但它首先执行静块,并从它称为主要方法。
import com.sun.javaws.Main;
public class StaticDemo {
static {
main(null);
System.out.println("in static block");
}
public static void main(String args[]){
System.out.println("in main method");
}
}
输出将是...
in main method
in static block
in main method
我的预期成果是....
in main method
in static block
有什么办法先“执行”的主要方法,然后静BLK
号没有。这并不是说静态块。
假设你要执行一些代码main
方法完成后,你可以:
main
方法的最后一个方法,main()
抛出一个异常,或你也可以把代码放到一个不同的类中的静态块,要么动态加载/初始化,或以各种方式触发它。但调用的方法更简单。
这是不可能的静态块,但你可以使用一个实例初始化块:
公共类加载器{
{
System.out.println("in instance initializer");
}
public static void main(final String[] args) {
System.out.println("in main method");
new Loader();
}
}