Generics를 공부하면서 extends와 super가 헷갈려서 두 keyword의 정의와 차이점을 정리해 보았다.
generics에서 extends keyword는 타입의 상한 경계를 제한할 때 사용됩니다.
public void printNumbers(List<? extends Number> list) {
for (Number n : list) {
System.out.println(n);
}
// list.add(1); // 컴파일 에러 발생!
}
generics에서 super keyword는 타입의 하한 경계를 제한할 때 사용합니다.
public void addIntegers(List<? super Integer> list) {
list.add(1); // OK
// Integer n = list.get(0); // 컴파일 에러! Object로만 안전하게 꺼낼 수 있음
}
LocalDate, LocalTime, LocalDateTime (0) | 2025.05.13 |
---|---|
Java의 시간 날짜 라이브러리 소개 (0) | 2025.05.11 |
Object class (0) | 2025.02.16 |
Concurrent Random Number (0) | 2024.09.24 |
ThreadLocal (1) | 2024.02.28 |
댓글 영역