我正在编写以下方法,它将一个数组作为输入并将该数组的元素写入一个 .txt 文件:
public static void writeArrayToTxt(Object[] array, String filename) throws FileNotFoundException, UnsupportedEncodingException
{
PrintWriter writer = new PrintWriter(filename, "UTF-8");
for(int i = 0; i < array.length; i++)
{
String line = "";
line = array[i] + "";
writer.println(line);
}
writer.close();
}
但是,我希望能够对整数数组和 double 组使用相同的方法,因为这不需要不同的方法体。这可能吗?如果是这样,我应该为该方法提供什么输入?
只是尝试
int[] arrayInt = {1, 2, 3, 4, 5};
writeArrayToTxt(arrayInt, "test.txt");
将给出“类型测试中的方法 writeArrayToTxt(Object[], String) 不适用于参数 (int[], String)”
最佳答案
因此,int
是 java 中的基本数据类型,不能将其表示为 Object
。使用整数
:
Integer[] arrayInt = {1, 2, 3, 4, 5};
注意:如果您只想传递 Integer
和 Double
数组,我会建议使用更具体的参数,例如 Number[] 数组:
writeArrayToTxt(Number[] array, String filename)
如果您将 int[] 作为任何方法的返回值,那么您可以将其转换为 Integer[]/Double[],如下所示。
int[] arrayInt = { 1, 2, 3, 4, 5 };
Integer[] arrayInteger = Arrays.stream(arrayInt).boxed().toArray(Integer[]::new);
关于java - 我可以对不同但可比较的输入使用相同的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55069126/