왜 Java가 제공했는지 일반 유형을 사용하여 문제를 해결할 수있는 경우 무제한의 와일드 카드가 제공됩니다. 예를Unbounded 와일드 카드 사용과 Java의 Generic 유형의 차이점은 무엇입니까?
class UnBoundedUsage {
//Method 1
public static void unboundedMethod(List<?> list) {
for(Object obj : list) {
System.out.println(obj);
}
}
//Method 2
public static <T> void methodWithType(List<T> list) {
for(T obj : list) {
System.out.println(obj);
}
}
}
를 들어 은 누구도 날 우리가 방법 1을 가질 필요가 왜 2 다음 우리의 요구 사항을 해결할 수 방법 경우 이해하는 데 도움이 바랍니다 수 있습니다. 무제한 와일드 카드를 사용하여 문제를 해결할 수 있고 일반 메서드 유형 (예 : 방법 2)을 사용하여 해결할 수없는 문제를 의미합니까?
방법 2에서 '목록'에 요소를 추가 할 수 있습니다. 방법 1에서 할 수 없습니다. –
@AndyTurner에게 감사드립니다.하지만 요소를 추가하는 것이 유일한 문제 인 경우 코드 스 니펫 아래로 변경할 수 있습니다. public static void methodWithType (List super T> list) { for (Object obj : list) { System.out.println (obj); } } –
MishraJi
유일한 문제는 아닙니다. 이것은 컴파일러가 안전성을 보장 할 수 있도록 충분한 정보를 제공하는 변수의 유형에 불과합니다. –