为什么Java只允许main方法接受String[] args
形式的参数?即一串字符串
public static void main(String[] args)
为什么Java不允许像
这样的int或double数组public static void main(int[] args)
或
public static void main(double[] args
为什么它不允许单个字符串或int或float而不是字符串数组?类似的东西:
public static void main(String args)
或
public static void main(int i)
答案 0 :(得分:3)
这是在命令行中运行java程序的方法:
java YourMainClass
命令行参数在此之后出现:
java YourMainClass arg1 arg2 arg3
这会使args
字符串数组包含"arg1"
,"arg2"
和"arg3"
。如果您将args
数组设为int[]
,那么arg1
将如何放入int
?
从JVM的角度来看,将命令行参数放在String
中是最安全的选择。用户输入的任何内容都必须是一堆char
s。
根据JLS,
第12.1.4节:
最后,完成类Test的初始化(期间) 其他相应的加载,链接和初始化可能有 发生了),调用了Test的方法main。
方法main必须声明为public,static和void。它必须 指定一个形式参数(第8.4.1节),其声明类型为数组 串强>