【发布时间】:2018-05-09 17:20:19
【问题描述】:
为什么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)
【问题讨论】:
-
因为它只允许
String[]。 -
因为您在命令行上作为参数传递给程序的所有内容都可以表示为字符串。不是双精度数或整数。
-
正是我的问题,为什么只有 String[ ] 而没有别的? @luk2302
-
因为这就是documentation 所说的:方法声明具有以下形式:
public static void main(String[] args),这是有道理的,因为(正如 JB 已经说过的)传递的值在命令行上实际上是字符串。如果您想要其他内容,您根据需要进行转换并在您认为合适的情况下处理错误。 -
要允许
int[],您需要从命令行转换数字,您需要决定如何执行此操作以及在失败时如何处理。最好把这样的决定留给程序员。在您的程序中,您可以轻松转换。