728x90
반응형



class Data2<T1, T2> {
private T1 Num1;
private T2 Num2;
Data2(T1 Num1, T2 Num2) {
this.Num1 = Num1;
this.Num2 = Num2;
}
public T1 getNum1() {
return Num1;
}
public void setNum1(T1 num1) {
Num1 = num1;
}
public T2 getNum2() {
return Num2;
}
public void setNum2(T2 num2) {
Num2 = num2;
}
}
public class Test004 {
public static void main(String[] args) {
Data2<Integer, Double> aData2 = new Data2<Integer, Double>(3, 3.1);
System.out.println(aData2.getNum1());
System.out.println(aData2.getNum2());
Data2<Integer, Double> aData2_1 = new Data2<>(3, 3.1);
System.out.println(aData2_1.getNum1());
System.out.println(aData2_1.getNum2());
// Data2<>aData2_2 = new Data2<>(3,3.1); 허용 안함
// 뒤쪽은 생략이 가능하지만 래퍼클래스의 형은 생략할 ㅅ수 없다.
// 객체 생성쪽은 <>내의 타입의 생략이 가능
Data2 aData2_2 = new Data2<>(7, 7.1);
System.out.println(aData2_2.getNum1());
System.out.println(aData2_2.getNum2());
// 참조 변수 선언시 <>부분 통째로 생략 가능2 : 실제로는 Object가 삽입 됨
// 정확한 Type 지정을 생략하면 모두 Object Type으로 간주.
Data2<Object, Object> aData2_3 = new Data2<>(7, 7.1);
System.out.println(aData2_3.getNum1());
System.out.println(aData2_3.getNum2());
aData2_3.setNum1(3.14);
aData2_3.setNum1("TEST"); // Object로 되어있어서 글자도 출력함.
System.out.println(aData2_3.getNum1());
System.out.println(aData2_3.getNum2());
}
}728x90
반응형
'Language > Java' 카테고리의 다른 글
| iterator (0) | 2021.03.30 |
|---|---|
| ArrayList 예제 (0) | 2021.03.30 |
| ArrayList (0) | 2021.03.30 |
| 제네릭 메서드 기법 (0) | 2021.03.30 |
| wrapper class, boxing unboxing (0) | 2021.03.29 |
| wrapper class 예제 (0) | 2021.03.29 |