java - 鉴于 Java 对可变参数的有限实现,它们有什么好处?

标签 java variadic-functions

我有 C(++) 背景,我对 Java 的主要兴趣是 Android 开发。对我来说,这似乎是一个显而易见的问题,但我还没有在任何地方找到它的解决方法(而且我确实搜索了 stackoverflow 并用谷歌搜索了它)。我确实发现了很多评论,例如:

public String foo(String key, Object[] parameters) {..}

and

public String foo(String key, Object... parameters) {..}

are equal

事实上,“Varargs”的 java 文档明确指出“最终参数类型后的三个句点表明最终参数可以作为数组或参数序列传递”

来自同一来源的最常陈述的理由是可变参数“在核心 API 中的重要用途包括反射、消息格式化和新的 printf 工具。”

鉴于 Java 是面向对象的,包括垃圾收集并支持动态数组AND Java 可变参数仅限于单一类型,有什么优势? (例如,与 C 相比,它们实现了附加功能。)

最佳答案

易于使用。仅此而已。

printf( "...", x, y, z );

相当于

printf( "...", new String[] { x, y, z } );

除了更容易编写和阅读。

关于java - 鉴于 Java 对可变参数的有限实现,它们有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6141691/

相关文章:

java - JPA 在成员集合上使用聚合函数选择新的

c++ - 为什么构造函数中的多参数在 linux 下不起作用?

c++ - 在类型特征中使用可变参数省略号来表示计时持续时间

python - 创建一个返回与接收到的参数相同的 Python 函数

c - 使用 va_args 打印另一个参数

java - 比较日历对象以获取秒数差异

java - 为什么使用构造函数参数 Autowiring 原型(prototype)bean时不调用@PostConstruct方法

java - 如何将 Maven 管理的依赖项复制到 war\web-inf\lib 中,以便我可以在 Eclipse 中以 Debug模式运行我的 GWT 2.0 应用程序?

java - 如何使用集合添加列表(字符串数组)和arrayList?

java - 从 Java 调用可变长度参数 Scala 函数的语法?