1. 3 지네릭 클래스의 객체 생성과 사용
: 참조변수와 생성자에 대입된 타입이 일치해야 함
Box<Apple> appleBox = new Box<Apple>(); // OK
Box<Apple> appleBox = new Box<Grape>(); // 에러
두 타입이 상속관계에 있어도 마찬가지. Apple이 Fruit의 자손이라고 가정하자.
Box<Fruit> appleBox = new Box<Apple>(); // 에러. 대입된 타입이 다르다.
두 지네릭 클래스의 타입이 상속관계에 있고, 대입된 타입이 같은 것은 OK
Box<Apple> appleBox = new FruitBox<Apple>(); // Ok. 다형성
추정이 가능한 경우 생략 가능
Box<Apple> appleBox = new Box<Apple>();
Box<Apple> appleBox = new Box<>(); // 생략가능
생성된 Box<T>의 객체에 객체를 추가할 때, 대입된 타입과 다른 타입의 객체는 추가할 수 없다.
Box<Apple> appleBox = new Box<Apple>();
appleBox.add(new Apple()); // OK
appleBox.add(new Grape()); // error. Apple객체만 추가가능
Apple이 Fruit의 자손이면 가능
Box<Fruit> fruitBox = new Box<Fruit>();
fruitBox.add(new Fruit()); // OK
fruitBox.add(new Apple()); // OK
'Language > java' 카테고리의 다른 글
[Java] 지네릭스_와일드 카드 (0) | 2022.07.29 |
---|---|
[Java] 지네릭스_제한된 지네릭 클래스 (0) | 2022.07.29 |
[Java] 지네릭스란? (0) | 2022.07.28 |
[Java] 컬렉션 프레임윅 (Collections) (0) | 2022.07.28 |
[Java] 컬렉션 프레임윅 (HastMap과 Hashtable) (0) | 2022.07.27 |
댓글