当前位置:  开发笔记 > 编程语言 > 正文

差异fn(String ... args)vs fn(String [] args)

如何解决《差异fn(Stringargs)vsfn(String[]args)》经验,为你挑选了5个好方法。

这个语法对以下内容有用:

    function(String... args)

和写作一样吗?

    function(String[] args) 

仅在调用此方法时有区别或是否还有其他功能?



1> bruno conde..:

两者之间的唯一区别是你调用函数的方式.使用String var args可以省略数组创建.

public static void main(String[] args) {
    callMe1(new String[] {"a", "b", "c"});
    callMe2("a", "b", "c");
    // You can also do this
    // callMe2(new String[] {"a", "b", "c"});
}
public static void callMe1(String[] args) {
    System.out.println(args.getClass() == String[].class);
    for (String s : args) {
        System.out.println(s);
    }
}
public static void callMe2(String... args) {
    System.out.println(args.getClass() == String[].class);
    for (String s : args) {
        System.out.println(s);
    }
}



2> Mecki..:

差异仅在调用方法时.必须使用数组调用第二个表单,第一个表单可以使用数组调用(就像第二个表单一样,是的,根据Java标准这是有效的)或者使用字符串列表(多个字符串用逗号分隔)或根本没有参数(第二个必须有一个,必须至少传递null).

它在语法上是糖.实际上编译器会转

function(s1, s2, s3);

function(new String[] { s1, s2, s3 });

内部.



3> michelemarco..:

使用varargs(String...),您可以这样调用方法:

function(arg1);
function(arg1, arg2);
function(arg1, arg2, arg3);

你不能用array(String[])做到这一点



4> kgiannakakis..:

您将第一个函数称为:

function(arg1, arg2, arg3);

而第二个:

String [] args = new String[3];
args[0] = "";
args[1] = "";
args[2] = "";
function(args);



5> JesperE..:

在接收器大小上,您将获得一个String数组.区别仅在于主叫方.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有