java - 当你有静态 block 时,为什么我们需要 main 方法

标签 java

这个问题是问我认识的人的。我能想到的是 main 方法需要接受命令行参数作为方法参数。

是否有任何其他论点来捍卫 public static void main(String args[]) 方法?

最佳答案

  • 它可以测试一个主要方法
  • 它使得从其他类调用一个main方法成为可能
  • 它可以多次调用主方法,而类型初始化只发生一次
  • 它可以在不运行程序的情况下创建包含 main 方法的类的实例。

在应用程序完成之前阻塞“主”类的类型初始化的想法是可恶的。

我们可以应对吗?我敢说。但我怀疑我最终会写:

public class EntryPoint
{
    static
    {
        // Workaround for entry points being static initializers
        String[] arguments = getArgumentsHoweverThatHappens();
        RealEntryPoint.execute(arguments);
    }
}

... 没有其他东西会触及 EntryPoint

关于java - 当你有静态 block 时,为什么我们需要 main 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5590502/

相关文章:

java.lang.OutOfMemory错误: Java heap space

java - 我的 log4j java.lang.ClassNotFoundException : =org. apache.log4j.RollingFileAppender 问题

java - 如何找到数组中元素的索引?

java - 为什么实践书中并发的 SafePoint 类标记为@ThreadSafe?

Java,Junit - 捕获标准输入/输出以用于单元测试

java - 从 CSV 文件实例化 N 叉树

java - Android::如何从 Activity 中的所有 View 中删除焦点?

java - 打印 int 类型的变量(不包括函数)

java - 如果配置了c3p0,connection.pool_size是否会被忽略

java - JPQL:以下使用继承的 WHERE 子句的问题