2011. 7. 27. 21:55
제네릭타입 extended JAVA이야기2011. 7. 27. 21:55
//좌변 우변 모두다 String.class와 같은 클래스 리터럴 힌트를 줘야 컴파일러가 컴파일 할수 있음
Class<? extends String> c3 = Class.forName("java.lang.String").asSubclass(String.class);
//아래와 같은것은 안된다. 좌변은 클래스리터럴을 아는데, 우변은 클래스를 리터럴을 모르기 때문이다.
// Class<? extends String> c4 = Class.forName("java.lang.String");
//좌변 우변 모르는 리터럴클래스<?>를 사용하면 컴파일 된다.
Class<?> dontknow = Class.forName("java.lang.String");
결론
좌변 = 우변
T T => 컴파일 성공
F T => 컴파일 성공
T T => 컴파일 성공
T F => 컴파일 실패
좌변의 클래스 리터럴을 알면 반드시 우변의 클래스 리터럴을 알아야한다.
좌변의 클래스 리터럴을 모른다면 우변은 알아도되고, 몰라도 된다.
결론
좌변 = 우변
T T => 컴파일 성공
F T => 컴파일 성공
T T => 컴파일 성공
T F => 컴파일 실패
좌변의 클래스 리터럴을 알면 반드시 우변의 클래스 리터럴을 알아야한다.
좌변의 클래스 리터럴을 모른다면 우변은 알아도되고, 몰라도 된다.
'JAVA이야기' 카테고리의 다른 글
클래스 로딩-2 (0) | 2011.07.28 |
---|---|
클래스 로딩-1 (0) | 2011.07.28 |
Reflection (0) | 2011.07.27 |
퀴즈 (0) | 2011.07.27 |
[java] 왜 thread의 stop메소드를 deprecated 시켰나? (0) | 2011.07.17 |