제너릭은 생략이가능하다
EmployeeInfo e = new EmployeeInfo(1);
Integer i = new Integer(10);
Person<EmployeeInfo, Integer> p1 = new Person<EmployeeInfo, Integer>(e, i);
생성자의 매개변수 e와 i는 각각 EmployeeInfo ,Integer라는 것을 알수있다
Person<EmployeeInfo, Integer> p1 = new Person<EmployeeInfo, Integer>(e, i);
>> 그래서 이와같이 생략이 가능하다 Person p1 = new Person(e, i);
package org.opentutorials.javatutorials.generic;
class EmployeeInfo{
public int rank;
EmployeeInfo(int rank){ this.rank = rank; }
}
class Person<T, S>{ //클래스안에서 쓰는 제너릭
public T info;
public S id;
Person(T info, S id){
this.info = info;
this.id = id;
}
public <U> void printInfo(U info){ //제너릭은 꼭 클래스안에서만쓰는것이 아니라 메소드안에서도 사용이 가능하다
System.out.println(info);
}
}
public class GenericDemo {
public static void main(String[] args) {
EmployeeInfo e = new EmployeeInfo(1);
Integer i = new Integer(10);
Person<EmployeeInfo, Integer> p1 = new Person<EmployeeInfo, Integer>(e, i);
p1.<EmployeeInfo>printInfo(e);
p1.printInfo(e); //물론 생략이 가능하다는 얘기이다.
}
}
메소드 안에 제너릭 사용법
접근제어자 < > 리턴값 사이에 꺽쇠로 넣어줌
printInfo 라는 메소드 printInFo 라는 데이터 타입을 아직 확정하지않음
person 이라는 클래스안에 메소드이기때문에
p1.<EmployeeInfo>printInfo(e);
'자바 입문 기초 알고리즘 구조' 카테고리의 다른 글
별찍기 (0) | 2023.10.05 |
---|---|
자바 제네릭 2 (생활코딩) (0) | 2021.07.22 |
인스턴스화 시키는 법 (0) | 2021.07.22 |
제너릭 메소드 (생활코딩) (0) | 2021.07.22 |
별찍기 왼쪽아래가 직각인 삼각형 왼쪽위가 직각인 삼각형 (0) | 2021.07.16 |