제한된 제네릭 클래스
특정타입, 특정타입의 하위클래스만을 허용하는 제네릭 클래스
프로그래머가 원치않는 타입의 입력을 방지할 수 있고 이를통해 더욱 제한적이고 안전하게 사용할 수 있게 된다.
Number클래스를 상속받은 클래스만을 허용하는 T의 NumberBox란 클래스가 있다고 가정해보자.
class NumberBox<T extends Number> {
private T content;
public NumberBox(T content) {
this.content = content;
}
public T getContent() {
return content;
}
}
NumberBox 클래스를 사용할때는 정수, 실수와 같은 숫자타입만을 넣을 수 있게된다.
public class Main {
public static void main(String[] args) {
NumberBox<Integer> intBox = new NumberBox<>(10); // Integer를 저장하는 상자
NumberBox<Double> doubleBox = new NumberBox<>(3.14); // Double을 저장하는 상자
// NumberBox<String> stringBox = new NumberBox<>("Hello"); // 에러: String은 Number를 상속받지 않음
System.out.println("Integer content: " + intBox.getContent()); //Integer content: 10
System.out.println("Double content: " + doubleBox.getContent()); //Double content: 3.14
}
}
'JAVA' 카테고리의 다른 글
다양한 타입의 인자를 처리할 수 있도록 하는 메서드: Generics 제네릭 메서드 (0) | 2024.02.14 |
---|---|
<? extends *> 와일드카드, 보다 유연한 타입제한 (0) | 2024.02.14 |
Generics 제네릭 클래스의 객체 생성과 사용 (0) | 2024.02.14 |
Generics 지네릭스, 형변환을 생략하다 (0) | 2024.02.14 |
제네릭클래스의 타입변수: <T> <E> <K,V> (0) | 2024.02.14 |