我正在编写一个文件编写器,它使用提供的参数以某种格式生成字符串。我希望以用户可能的最简单方式将参数传递给方法。参数可以是任何类型,因为它们将使用 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
}
但我很快意识到,如果我想传递特定类型的数组,这不起作用。浮点数组需要首先转换为对象数组,这对用户来说是不必要的工作。简化这一点的最佳方法是什么?
- 编写几个以常见数组类型作为参数的方法( writeLine( float[] argArray )、writeLine( String[] argArray ) 等)(不适用于所有类型)
- 在传递之前将所有数组转换为对象数组(缓慢和额外的工作)。
- 还有什么?