/*
< ? super 객체자료형> 명시된 객체를 포함한 상위 객체들의배치 / 객체 내부의 모든 제네릭 타입은 Object로 인식
< ? exfends 객체자료형 > 명시된 객체를 포함한 상속받은 하위 객체들의 배치 / 객체 내부의 모든 제네릭 타입은 extends 다음에 명시된 객체자료형으로 인식
*/
class SuperA
{
String msg = "SuperA";
public String getMsg();
return msg;
}
class SuperB
{
String
public
}
class SuperC
{
public
}
class GenericEx2 < T >
{
private T a;
public GenericEx2() {}
public GenericEx2( T a )
{
this.a = a;
}
public void set ( T a )
{
this.a = a;
}
public T get()
{
return a;
}
public static void main( String[] args )
{
GenericEx2 < ? > ge = new GenericEx2 < Integer > ( 10 );
int a = ( Integer ) ge.get();
SuperA sua = new SuperA();
SuperB sub = new SuperB();
SuperC suc = new SuperC();
GenericEx2 < ? super SuperB > ge1 = new GenericEx2 < SuperA > ( sua );
GenericEx2 < ? super SuperB > ge2 = new GenericEx2 < SuperB > ( sub );
// GenericEx2 < ? super SuperB > ge3 = new GenericEx2 < SuperC > ( suc );
SuperB sb = ( SuperB ) ge2.get();
// GenericEx2 < ? extends SuperB > ge4 = new GenericEx2 < SuperA > ( sua );
GenericEx2 < ? extends SuperB > ge5 = new GenericEx2 < SuperB > ( sub );
GenericEx2 < ? extends SuperB > ge6 = new GenericEx2 < SuperC > ( suc );
SuperC sc = ( SuperC ) ge6.get();
}
}
'매니저 > JAVA1' 카테고리의 다른 글
JAVA1 Stack 예제 (임시저장) (0) | 2011.12.23 |
---|---|
JAVA1 HashSet 예제 (임시저장) (0) | 2011.12.23 |
JAVA1 Gemeric 예제 (임시저장) (0) | 2011.12.23 |
JAVA1 Package 예제 (임시저장) (0) | 2011.12.23 |
JAVA1 Exception 예제3 (임시저장) (0) | 2011.12.23 |