2018-4-15 TIL Exception
와일드카드
언제 와일드 카드에 제한을 걸어야하나?
- 매개변수 선언 : Box<? extends Toy> box => box가 참조하는 인스턴스를 대상으로 꺼내는 작업만 허용
- Box<? super extends Toy> box => box가 참조하는 인스턴스를 대상으로 넣는 작업으로만 허용
package yoon;
class BoxContentsMover {
// from에 저장된 내용을 to로 이동
public static void moveBox(Box2<? super Toy> to, Box2<? extends Toy> from) {
to.set(from.get());
}
}
public class MoveBoxContents {
public static void main(String [] args) {
Box2<Toy> box1 = new Box2<>();
box1.set(new Toy());
Box2<Toy> box2 = new Box2<>();
// box1에 저장된 내용을 box2로 이동
BoxContentsMover.moveBox(box2, box1);
System.out.println(box2.get());
}
}
//result
I am a boy
Written on April 15, 2018