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

问题描述

| 我来自C(++)背景,对Java的主要兴趣是Android开发。对我来说,这似乎是一个显而易见的问题,但我还没有发现它在任何地方都可以解决(而且我确实搜索了stackoverflow并对其进行了搜索)。我确实发现了很多评论,例如:   
public String foo(String key,Object[] parameters) {..}
and
     
public String foo(String key,Object... parameters) {..}
are equal
实际上,\“ Varargs \”的Java文档明确声明\“最终参数类型之后的三个句点表示最终参数可以作为数组或参数序列传递\” 来自同一消息来源的最经常说明的理由是,varargs具有“核心API中的重要用途,包括反射,消息格式和新的printf工具。” 鉴于Java是面向对象的,包括垃圾回收并支持动态数组,并且Java varargs被限制为单一类型,优点是什么? (与之相反,例如,C实现了附加功能。)     

解决方法

使用方便。仅此而已。
printf( \"...\",x,y,z );
相当于
printf( \"...\",new String[] { x,z } );
除非它更容易写和读。     ,在varargs之前:
log.debug( \"foo is \" + foo + \",bar is \" + bar );
在varargs之后:
log.debug( \"foo is %s,bar is %s\",foo,bar );
第二版效率更高。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...