달력

2

« 2025/2 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
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   =>  컴파일 실패

좌변의 클래스 리터럴을 알면 반드시 우변의 클래스 리터럴을 알아야한다.
좌변의 클래스 리터럴을 모른다면 우변은 알아도되고, 몰라도 된다.
 

'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
:
Posted by НooпeУ


Code Start Code End