제출한 코드에서 실행 시 문제는 없지만 DDBox클래스에서 타입 인자는 L, R로 표시해주는 것이 더 좋겠습니다.
코딩 시 실수는 컴파일 단계에서 발견되는 것이 좋습니다.
그나마 예외처리 메시지라도 나오면 좋은 상황인데 결과는 나오는데 프로그래머 실수 등으로 넘어가는 경우가 심각한 문제를 일으킵니다.
코딩은 혼자서 하지 않고 협업으로 진행하다 보니 그런 상황이 발생할 수 있는데 이런 부분을 해결하기 위해 자바 5버전부터 타입을 매개변수로 가지는 클래스와 인터페이스가 가능하도록 제네릭(generic) 타입이 등장했습니다.
이런 불편함들을 해소하기 위해 갈수록 문법이 많이 생겨나면서 공부할 양도 많겠지만 개발자로 가기 위한 한 과정이므로 힘내 주시길 바립니다.
어제 저녁 늦은 시간에도 수고 많았습니다.
***** 원본글 *****
package step01;
class DBox<L,R> {
private L left;
private R right;
public void set(L o, R r) {
left = o;
right = r;
}
@Override
public String toString() {
return right + "&" + left;
}
}
class DDBox<U,D> {
private U u;
private D d;
public void set(U u,D d) {
this.u = u;
this.d = d;
}
@Override
public String toString() {
return u + "&" + d;
}
}
public class Exam06 {
public static void main(String[] args) {
DBox<String,Integer> box1 = new DBox<String,Integer>();
box1.set("Apple", 25);
DBox<String,Integer> box2 = new DBox<String,Integer>();
box2.set("Orange", 33);
DDBox<DBox<String, Integer>,DBox<String, Integer>> ddbox = new DDBox<>();
ddbox.set(box1,box2);
System.out.println(ddbox);
}
}