Language/java
[Java] 지네릭스_제한된 지네릭 클래스
gamxong
2022. 7. 29. 12:05
타입 매개변수 T에 지정할 수 있는 타입의 종류를 제한해보자
class FruitBox<T extends Fruit> {
ArrayList<T> list = new ArrayList<T>();
...
}
FruitBox<Apple> appleBox = new FruitBox<Apple>(); // OK
FruitBox<Toy> toyBox = new FruitBox<toy>(); // 에러. Toy는 Fruit의 자손이 아님
※ 인터페이스를 구현할 때도 'implements'가 아닌 'extends'를 사용
interface Eatable {}
class FruitBox<T extends Eatable> { ... }
// 클래스 Fruit의 자손이면서 Eatable 인터페이스도 구현해야 한다면
class FruitBox<T extends Fruit & Eatable> { ... }