【问题标题】:Why can't we provide size to the String[] args in java? [duplicate]为什么我们不能为 java 中的 String[] args 提供大小? [复制]
【发布时间】: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 你永远不能。您在创建数组时指定数组的大小,而不是在接收它时指定。

标签: java arrays methods


【解决方案1】:

只有当初始化数组时,您才能设置数组的长度:

String[] array = new String[42];

但是,当您希望将数组作为方法的参数时,例如在main()-方法中,您不是初始化数组的人,而是调用者。

public static void main(String[] args) {

在这种情况下,JVM 将使用命令行参数初始化args。如果不传递任何参数,则数组的长度为0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    相关资源
    最近更新 更多