【问题标题】:String... parameter in Java [duplicate]Java中的字符串...参数[重复]
【发布时间】:2012-02-21 08:30:02
【问题描述】:

我必须为家庭作业实现一个 API,而我的导师使用我不熟悉的符号表示 API 中的一种方法(基于 javadoc)。

public void method(String... strs);

“...”是什么意思?后来看起来我需要使用单个字符串实际参数以及多个字符串实际参数来调用相同的方法...

Java 没有可选参数(据我所知),所以我在这里有点困惑......

【问题讨论】:

    标签: java syntax arguments


    【解决方案1】:

    是的,这意味着您可以将任意字符串作为此方法的参数。

    对于您的方法:

    public void method(String... strs); 
    

    你可以这样称呼它:

    method(str)
    method(str1, str2)
    method(str1,str2,str3)
    

    任何参数都可以。换句话说,它是:

     public void method(String[] str); 
    

    【讨论】:

    • 呃,不,它没有(你说对了一半——你的第一句话就是问题所在)。
    • @BrianRoach,哦,是的,对不起,你是对的 :)
    • 尚未找到 varargs 可以接受多少个参数的最大限制,但绝对超过三个
    • +1 回来修复它。
    • 感谢您的示例。在了解“可变参数”后,我还发现可变参数参数必须是使用可变参数在函数的参数列表中声明的最终形式参数。
    【解决方案2】:

    它被称为可变参数; http://docs.oracle.com/javase/6/docs/technotes/guides/language/varargs.html

    这意味着您可以向方法传递任意数量的参数(甚至为零)。

    在该方法中,参数将自动放入指定类型的数组中,您可以使用该数组访问各个参数。

    【讨论】:

    【解决方案3】:

    参见java optional parameters:从 Java 5 开始,Java 支持可变数量的参数。

    【讨论】:

      【解决方案4】:

      它被称为ellipsis,这意味着该方法可以将多个Strings 作为其参数。

      请参阅:Oracle 网站上的 The Java tutorial on passing arguments

      【讨论】:

        猜你喜欢
        • 2012-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 2015-01-30
        • 2014-03-25
        • 2015-03-30
        • 2016-11-15
        相关资源
        最近更新 更多