我有 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/