我只是碰到varargs
一边学习的Android( doInBackground(Type... params)
),SO职位明确它的使用
我的问题是为什么我们不能只使用数组而不是数组 varargs
public void foo(String...strings) { }
我可以通过将可变数量的参数打包到数组中并将其传递给诸如此类的方法来替换这种类型的调用
public void foo(String[] alternativeWay){ }
也不会main(String[] args)
在Java中使用varargs
,如果不是我们如何能够通过运行参数,它
请提出的好处或用途,varargs
还有其他重要的事情要知道吗varargs
之间的唯一区别
foo(String... strings)
和
foo(String[] strings)
用于调用代码。考虑一下这个调用:
foo("a", "b");
这对于第一个声明是有效的foo
,并且编译器将在执行时发出代码以创建包含对"a"
和的引用的数组"b"
。这是不是与第二个声明有效foo
,但因为不使用可变参数。
无论哪种情况,调用者都可以显式创建数组:
for(new String[] { "a", "b" }); // Valid for either declaration
Java中的main(String [] args)也会使用varargs,如果不是,我们如何将运行时参数传递给它
当它写的main(String[] args)
不是它时;如果写的main(String... args)
话就可以了。不过,这与JVM的处理方式无关,因为JVM初始化会使用命令行参数创建一个数组。仅当您编写自己的代码以main
显式调用时,它才会有所不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句