如何在 java 中创建一个同时接受 String[] 和 Integer[] 且无需方法重载的方法?

SSR*_*SSR 5 java arrays string methods integer

假设您有一个整数数组和一个字符串数组。如何编写一个单一方法 printArray 来打印两个数组的所有元素。该方法应该能够接受整数数组或字符串数​​组。注意..我不能使用方法重载。知道如何解决这个问题吗?

iul*_*anr 6

你应该写一个通用方法

public <T> void printArray(T[] array) {
    //do your printing stuff here; something like this will work
    for ( T elem : array ) {
        System.out.println(elem.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

当你调用该方法时,你只需执行printArray(arrayOfIntegers)where arrayOfIntegersis

Integer[] arrayOfIntegers;
Run Code Online (Sandbox Code Playgroud)


JB *_*zet 3

我看到的唯一方法是

public void print(Object o) {
    if (o instanceof String[]) {
        System.out.println(Arrays.toString((String[]) o));
    }
    else if (o instanceof int[]) {
        System.out.println(Arrays.toString((int[]) o));
    }
}
Run Code Online (Sandbox Code Playgroud)

但这绝对是丑陋的。你应该有两种不同的方法。

如果您拥有的是 an Integer[](而不是int[]),那么它会更简单,并且可以:

public void print(Object[] o) {
    System.out.println(Arrays.toString(o));
}
Run Code Online (Sandbox Code Playgroud)