【发布时间】:2020-06-08 15:20:30
【问题描述】:
在编写程序时,我想到一个问题,我们可以为所有数组提供大小,但为什么我们不能在 java 中的“String[] args”数组中提供大小。 例如“
public class HelloWorld {
public static void main(String[] args) {
System.out.println( "Hello World" );
}
}
如果我将运行上述程序,那么我将不会收到任何错误,但如果我尝试为 main 方法的 String[] 提供大小,那么我将收到编译时错误。 你能告诉我为什么会出现这个问题吗?
谢谢
【问题讨论】:
-
因为您无法知道用户将提供哪些参数。您可以在方法中检查大小,如果这是您想要的。
-
Java 语言的设计者决定您不能为数组强制指定特定大小。大小不是类型的一部分。
args的类型只是String[]而不是像其他语言中的String[3]。相反,您只需抛出类似if (args.length > 3) { throw new IllegalArgumentException("blabla"); }的异常。 -
“我们可以为所有数组提供大小”——对于 parameters 你永远不能。您在创建数组时指定数组的大小,而不是在接收它时指定。