java - 我可以对不同但可比较的输入使用相同的方法吗?

标签 java methods

我正在编写以下方法,它将一个数组作为输入并将该数组的元素写入一个 .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};

注意:如果您只想传递 IntegerDouble 数组,我会建议使用更具体的参数,例如 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/

相关文章:

Java :Interface Method's Overriding

python - 如何指向给定变量python的方法

java - 0% 代码覆盖 jacoco4sbt 2.0.0, sbt 0.12.2

java - ObjectMapper.readValue 可以返回空值吗?

javascript - 添加属性/方法的明确最佳方式

java - 主循环中调用方法的困难(温度转换)

java - 转换 SDK V3 : Modify Cast NotificationOptions runtime

java - XPATH:将 xml 节点插入到另一个 XML 文档中

java - 数据流中的动态目标问题

java - Point2D 比较器抛出错误