gpt4 book ai didi

java - 可以将任何 java 类型的数组或对象数组传递给方法吗?

转载 作者:行者123 更新时间:2023-12-01 07:35:46 25 4
gpt4 key购买 nike

我正在编写一个文件编写器,它使用提供的参数生成某种格式的字符串。我希望以对用户来说最简单的方式将参数传递给该方法。参数可以是任何类型,因为它们将使用 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 组需要首先转换为对象数组,这对用户来说是不必要的工作。简化这个过程的最佳方法是什么?

  1. 编写几个采用常见数组类型作为参数的方法(writeLine( float[] argArray )、writeLine( String[] argArray ) 等)(不适用于所有类型)
  2. 在传递之前将所有数组转换为对象数组(缓慢且额外的工作)。
  3. 还有别的事吗?

最佳答案

尝试:

public String writeLine( Object... args ) {
...
}

使用原始数组时,请确保将它们替换为适当包装类型的数组,例如

Float[] values = {0.1f, 0.2f, 0.4f, 0.8f};

关于java - 可以将任何 java 类型的数组或对象数组传递给方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com