본문 바로가기
Language/java

[Java] 지네릭스_제한된 지네릭 클래스

by gamxong 2022. 7. 29.

타입 매개변수 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> { ... }

 

댓글