Java可变长度参数与数组,只是语法糖?

Java可变长度参数与数组,只是语法糖?,第1张

Java可变长度参数与数组,只是语法糖?

在Java中,varargs是在调用方法时用于创建数组的语法糖。例如,这两个调用是等效的:

void foo(String... args) { ... }foo("hello", null, "world", xyz);  // Java 1.5+foo(new String[]{"hello", null, "world", xyz});  // All versions of Java

Varargs并没有使任何新事物成为可能(通过语法糖的定义),但是它减少了冗长性,并使某些构造更易于实现。例如,一些我最喜欢的可变参数的用途包括:

PrintStream.printf()
String.format()
Method.invoke()

varargs的其他良好应用:

// This one is in the Java standard libraryCollections: void addAll(Collection<? super T> c, T... elements);// Custom examplesint max(int... nums);void doOperation(File x, String y, SomeEnum options...);

此外,Java的varargs使语言与C,Python,Javascript和其他语言中的vararg支持达到同等地位。因此,如果经常使用的设计(例如

max()
)与varargs一起使用效果最好,则Java不再是需要较丑陋的实现的奇怪语言。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5565821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存