【问题标题】:What is "String..." in java? [duplicate]java中的“字符串...”是什么? [复制]
【发布时间】:2012-03-31 21:03:29
【问题描述】:

可能重复:
varargs and the '…' argument
Java, 3 dots in parameters

我在我的 android java 文件中看到了这个定义。 它看起来就像字符串 []。它们不同吗? 谢谢你。

【问题讨论】:

标签: java android string


【解决方案1】:

varags。如果方法签名是 method(Param param, String... x),它将采用一个 Param 类型的对象和 任意 个 String 对象。

有一些很酷的事情:

  1. 没什么特别的。这只是加糖的阵列。所以,method(MyObject... o)method(MyObject[] o) 相同。

  2. Vararg 必须是参数列表中的最后一个参数。

  3. 有一个有趣的东西曾经咬过我一次。 method(MyObject... o) 可以被称为method() 而不会出现任何编译错误。 Java 将在内部将无参数调用转换为method(new MyObject[0])。所以,请注意这一点。

【讨论】:

    【解决方案2】:

    将数组的项写成参数的语法

    例如:

     public String first (String... values) {
         return values[0];
     }
    

    然后你可以用first("4","2","5","67")调用这个方法

    javacompiler 会自己创建一个参数数组。

    【讨论】:

    • first("4","2","5","67") ,not first(4,2,5,67)
    • 真的。出于一个原因,我在考虑整数。
    【解决方案3】:

    这是一个可变参数,可变数量的参数。在方法体中,您将其视为 String[],但是当您调用该方法时,您可以选择提供 String[] 或简单地枚举您的值。

    void foo(String... blah) { }
    
    void bar() {
       String[] a = { "hello", "world" };
       foo(a);  // call with String[]
       foo("hello", "world"); // or simply enumerate items
    }
    

    在 Java 5 中引入。

    【讨论】:

      【解决方案4】:

      用于定义带有variable number of arguments 的方法。

      【讨论】:

        【解决方案5】:

        String 是字符串类型。 String[] 是一个字符串数组。

        String ... 是一种语法糖,名为ellipsis,在java 1.5 中引入,取自C。它可以用在方法定义中,实际上与数组相同,只有一个区别。 如果方法定义为:

        public void foo(String[] arg){}

        您必须将数组传递给它:

        foo(new String[] {"a", "b"});

        如果方法定义为:

        public void foo(String arg){}

        你可以这样称呼它

        foo(new String[] {"a", "b"});

        foo("a", "b");

        【讨论】:

        • 您的第二个示例缺少省略号
        猜你喜欢
        • 2011-04-17
        • 2012-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-25
        • 2014-12-23
        • 1970-01-01
        相关资源
        最近更新 更多