-
제네릭 메소드JAVA/Generic 2020. 10. 18. 18:30
1. 제네릭 메솓의 정의와 호출
자바는 클래스 전부가 아닌 특정 메소드에 대해서만 제네릭 선언하는 것을 허용한다.
프로그램 실행결과
제네릭 메소드의 호출 과정에서 전달되는 인자를 통해서 제네릭 자료형을 결정할 수 있으므로
자료형의 표현은 생략 가능하다.
소스 코드
더보기class AAA { @Override // toString함수는 Object 클래스의 메소드 public String toString() {return "Class A"; } } class BBB { @Override // toString함수는 Object 클래스의 메소드 public String toString() {return "Class B"; } } class InstanceTypeShower { int showCnt = 0; // 제네릭 메소드 public<T> void ShowInstType(T inst) { System.out.println("Inst : " +inst); this.showCnt++; } void ShowPrintCnt() { System.out.println("Show count : " +this.showCnt); } } public class Exam1 { public static void main(String[] args) { AAA aaa = new AAA(); BBB bbb = new BBB(); InstanceTypeShower shower = new InstanceTypeShower(); shower.<AAA>ShowInstType(aaa); shower.ShowInstType(bbb); // 자료형의 표현은 생략 가능 shower.ShowPrintCnt(); } }
2. 제네릭 메소드와 둘 이상의 자료형 예제
프로그램 실행결과
소스 코드
더보기class AAA { @Override // toString함수는 Object 클래스의 메소드 public String toString() {return "Class A"; } } class BBB { @Override // toString함수는 Object 클래스의 메소드 public String toString() {return "Class B"; } } class InstanceTypeShower2 { int showCnt = 0; // 제네릭 메소드 public<T, U> void ShowInstType(T inst1, U inst2) { System.out.println("Inst1 : " +inst1); System.out.println("Inst2 : " +inst2); this.showCnt++; } void ShowPrintCnt() { System.out.println("Show count : " +this.showCnt); } } public class Exam2 { public static void main(String[] args) { AAA aaa = new AAA(); BBB bbb = new BBB(); InstanceTypeShower2 shower = new InstanceTypeShower2(); shower.<AAA,BBB>ShowInstType(aaa, bbb); shower.ShowInstType(aaa, bbb); } }
'JAVA > Generic' 카테고리의 다른 글
제네릭 변수의 참조와 상속의 관계 (0) 2020.10.18 제네릭 메소드와 배열 (0) 2020.10.18 매개변수의 자료형 제한 (0) 2020.10.18 제네릭 클래스의 이해와 설계 (0) 2020.10.18