class Aa{
public String toString() { return "Class Aa"; }
}
class Bb{
public String toString() { return "Class Bb"; }
}
class InstanceShower{
int showCnt = 0;
public <T> void showInstType(T inst){
// 메소드 호출시 T에 대한 자료형을 지정하면 매개변수의 T를 지정하게 됨
System.out.println(inst);
showCnt++;
}
void showPrintCnt(){ System.out.println("show count : " + showCnt); }
}
class GenericMeathod{
public static void main(String[] args) {
Aa a = new Aa();
Bb b = new Bb();
InstanceShower shower = new InstanceShower();
shower.<Aa>showInstType(a);
// 매개변수의 자료형을 Aa클래스로 지정
shower.showInstType(a);
// 제네릭을 생략할 수도 있는데 매개변수의 자료형을 근거로 판단하는 것
shower.<Bb>showInstType(b);
// 매개변수의 자료형을 Bb클래스로 지정
shower.showInstType(b);
shower.showPrintCnt();
}
}
앞에서 했던 제네릭을 한 번 더 실습해보자
.
.
제네릭표현을 추가하여 자료형을 받아 실행할 수 있다.
.
.
하지만 제네릭표현을 생략하고 사용해도 무방하다.
.
.
class Aa{
public String toString() { return "Class Aa"; }
}
class Bb{
public String toString() { return "Class Bb"; }
}
class InstanceShower2{
public <T, U> void showInstType(T inst1, U inst2){
System.out.println(inst1);
System.out.println(inst2);
}
}
class GenericMeathod2{
public static void main(String[] args) {
Aa a = new Aa();
Bb b = new Bb();
InstanceShower2 shower = new InstanceShower2();
shower.<Aa, Bb>showInstType(a, b);
shower.showInstType(a, b);
// 2개 이상을 사용해도 생략 가능
}
}
.
.
심지어 2개이상 사용해도 상관없다.
728x90
반응형
'Java > 본격 Java 컬렉션' 카테고리의 다른 글
[Java] LinkedList (0) | 2020.07.03 |
---|---|
[Java] ArrayList (0) | 2020.07.03 |
[Java] 컬렉션 프레임워크(Collection Framework) (0) | 2020.07.03 |
[Java] 제네릭(Generic) 심화 (0) | 2020.07.03 |
[Java] 제네릭 클래스 - 과일상자 실습 (0) | 2020.07.03 |