我正在编写一个文件编写器,它使用提供的参数以特定格式生成字符串。我希望以最简单的方式将参数传递给方法给用户。参数可以是任何类型,因为它们将使用toString()方法转换为字符串。这是一个简单的例子:
public String writeLine( Object arg1, Object arg2 ) {
return "(" + arg1.toString() + "," + arg2.toString() + ")";
}
但是,我需要能够传递可能无限量的参数(arg3,arg4等)。做这个的最好方式是什么?我想过这样做:
public String writeLine( Object[] argArray ) {
String str = new String();
for (int i = 0; i < argArray.length; i++) {
str += argArray[i].toString();
}
return str;
}
public static void main(String[] args) {
float[] values = {0.1, 0.2, 0.4, 0.8};
writeLine( values ); //<------ Compile Error
}
但我很快意识到,如果我想传递特定类型的数组,这不起作用。 float数组首先需要转换为Object数组,这对用户来说是不必要的工作。简化这个的最佳方法是什么?
答案 0 :(得分:4)
尝试:
public String writeLine( Object... args ) {
...
}
使用原始数组时,请确保使用适当的包装类型的数组替换它们,例如
Float[] values = {0.1f, 0.2f, 0.4f, 0.8f};
答案 1 :(得分:3)
您必须特殊情况下所有原始数组类型 - 例如float[]
,int[]
- 但对于对象类型,您可以只使用一个方法Object[]
。