반응형
파라미터 타입 제한
제네릭의 파라미터 타입을 제한하고 싶을 때 사용
예를 들어, 숫자를 연산하는 제네릭 메소드는 매개값으로 Number 타입 또는 하위 클래스인 Byte, Short, Integer, Long, Double 의 인스턴스만 가져야 할 때 사용할 수 있다.
제한된 타입 파라미터를 선언하려면 타입 파라미터 뒤에 extends 키워드를 붙이고 상위 타입을 명시하면 된다. 상위 타입은 인터페이스도 가능하나 implements를 사용하지는 않는다.
public <T extends Number> int compare(T t1, T t2) {
double v1 = t1.doubleValue();
double v2 = t2.doubleValue();
return Double.compare(v1, v2);
}
와일드 카드 타입
제네릭 타입을 매개값이나 리턴 타입으로 사용할 때 구체적인 타입 대신 와일드 카드를 다음과 같이 세 가지 형태로 사용할 수 있다.
<?> : 모든 클래스나 인터페이스 타입이 올 수 있다.
<? extends 상위 타입> : 상위 타입의 모든 하위 클래스 타입이 올 수 있다.
<? Super 하위 타입> : 하위 타입의 모든 상위 클래스 타입이 올 수 있다.
반응형
'개발_웹 > Java' 카테고리의 다른 글
Java | JDBC가 퍼센트(%)를 인식못할때 (0) | 2019.05.10 |
---|---|
Java | 가변 파라미터 (0) | 2019.05.10 |
Java | equals(), hashCode() 오버라이딩을 통한 객체 비교 (0) | 2019.05.10 |
Java | 컬렉션(Collection), 맵(Map) 정렬하기 (0) | 2019.05.10 |
Java | toString() 메소드로 객체의 정보 출력하기 (0) | 2019.05.10 |