저는 학교에서 Java를 배우며 주제는 일반적인 방법입니다. 동일한 요소가있는 모든 유형의 배열을 "채우는"제네릭 메서드가있는 응용 프로그램을 작성해야합니다. 나는이 여러 접근 방법을 시도하고 연구 약간의 시간을 보냈다배열 채우기 일반 메서드
package pack.switchshift;
import java.lang.reflect.Array;
public class Filler {
public static void main(String [] args) {
int[] intArr = new int[10];
String[] stringArr = new String[10];
double[] doubleArr = new double[10];
genFill(intArr, 0);
genFill(stringArr, "0");
genFill(doubleArr, 0.0);
for (int element : intArr){
System.out.print(element);
}
}
private static <T> void genFill(T[] arr, T element) {
for (int i = 0; i < arr.length; i++) {
arr[i] = element;
}
}
}
, 그러나 나는 아직도 그것을받지 못했습니다 :하지만 작동하지 않습니다 ... 사람이 나에게 도움이 될 수 있습니다. 제네릭은 항상 기본 유형이 작동하지 않습니다
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The methodgenFill(T[], T)
in the typeFiller
is not applicable for the arguments(int[], int)
The methodgenFill(T[], T)
in the typeFiller
is not applicable for the arguments(double[], double)
at pack.switchshift.Filler.main(Filler.java:11)
기본 유형의 경우 박스형 버전을 사용해야합니다. –
'T'는이 경우 유용하지 않습니다; 당신의 메소드 서명은 단지'private static void genFill (Object [] arr, Object element)이어야합니다. ' – newacct