为什么Java中需要String [] args?

Aus*_*Way 16 java

我理解String [] args是一个传递给main作为参数的字符串数组.

java Print "Hello, World!"
Run Code Online (Sandbox Code Playgroud)

 

class Print {
  public static void main(String[] args) {
    System.out.println(args[0]);
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果不将其作为参数包含(即使不使用),也会引发异常.那为什么需要呢?另外,为什么它不能是int []或boolean []?

Jon*_*eet 33

它是一个String,因为命令行以文本表示.如果要将该文本转换为整数或布尔值,则必须自己执行此操作 - 操作系统或Java引导程序将如何确切地知道您希望如何解析所有内容?我想Java 可以寻找一个主命令方法,使用与命令行参数相同数量的参数,然后尝试使用Integer.parseInt等解析它们......但这会非常复杂,并且在许多情况下仍然不够.

至于它是强制性的 - 基本上Java设计者决定坚持单一的方法签名,这比允许它是可选的更简单.但是有可能 - 在C#中,你可以拥有任何一个

static void Main()
static void Main(string[] args)
static int Main()
static int Main(string[] args)
Run Code Online (Sandbox Code Playgroud)

诚然,最终它没有太大的区别.必须包含参数没有明显的缺点.