【问题标题】:Proper terminology for Object... args对象的正确术语... args
【发布时间】:2013-05-16 10:58:45
【问题描述】:

我正在使用 Java,为方法指定多个参数的典型方式是:

public static void someMethod(String[] args)

但是,我见过几次另一种方式,即使是在标准 Java 库中也是如此。我不知道如何在对话中提及这一点,由于使用的字符,谷歌搜索没有多大帮助。

public static void someMethod(Object... args)

我知道这允许您将一堆或参数串入一个方法中,而无需提前知道可能有多少,例如:

someMethod(String arg1, String arg2, String arg3, ... etc

您如何引用这种类型的方法签名设置?我认为这很好,很方便,想向其他人解释一下,但我不知道如何参考。谢谢。

【问题讨论】:

标签: java methods args


【解决方案1】:

这种表达参数的方式称为 varargs,在 Java 5 中被引入。
你可以阅读更多关于他们的信息here

【讨论】:

  • 看起来像 C/C++ 主函数
  • @huseyintugrulbuyukisik ?在 C/C++ 中,主要功能是 main( void )main( int argc, char *argv[] ) ...不太一样...除非我遗漏了什么?
【解决方案2】:

参数方法(Object...args) 被称为varargs。试试这个link

【讨论】:

    【解决方案3】:

    正如 Keppil 和 Steve Benett 指出的那样,这个 java 特性被称为可变参数。

    如果我没记错的话,Joshua Bloch 提到使用 varargs 会降低性能,并建议使用可伸缩的 varargs 方法作为 catch all sink。

    public static void someMethod(Object arg) {
        // Do something
    }
    
    public static void someMethod(Object arg1, Object arg2) {
        // Do something
    }
    
    public static void someMethod(Object arg1, Object arg2, Object arg3) {
        // Do something
    }
    
    public static void someMethod(Object ... args) {
        // Do something
    }
    

    【讨论】:

    • +1 对此次对话的重要补充。我认为这是来自 Jashua Bloch 的链接:jtechies.blogspot.com/2012/07/… 有道理,这似乎是考虑性能的好方法。
    猜你喜欢
    • 2018-08-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2013-04-06
    • 2013-09-17
    • 2011-12-19
    • 1970-01-01
    相关资源
    最近更新 更多