Как эти методы append()
неоднозначны?
public class Try_MultipleArguments {
public static void main(String[] args) {
int array1[] = new int[] {1, 2, 3};
int array2[] = new int[] {4, 5, 6};
append(array1, array2);
append(array1, 4, 5, 6);
}
public static int[] append(int[] array1, int[] array2) {
int[] ans = new int[array1.length + array2.length];
for(int i=0; i<array1.length; ++i) {
ans[i] = array1[i];
}
for(int i=0; i<array2.length; ++i) {
ans[i+array1.length] = array2[i];
}
return ans;
}
public static int[] append(int[] array1, int ... array2) {
return append(array1,array2);
}
}
UPDATE
Varargs эквивалентен массиву, но это изнутри метода. С внешней стороны метода он не должен быть эквивалентен ему.
ОБНОВЛЕНИЕ 2
Теперь я вижу, что могу передать массив в vararg. Я этого не знал. Всегда это оборачивалось этой необходимостью. Хм... Это было с самого начала java varargs?