공부기록/Java

제네릭(2)

jhs0129 2021. 8. 9. 17:01
320x100
반응형
  • 제한된 타입 파라미터

타입 파라미터를 구체적으로 지정하여 제한 

ex) 계산기 구현할 때 숫자만을 지정하기 위해서 매개변수로 Number로 제한

    <T extends 상위타입>

클래스 인터페이스 모두 가능 *인터페이스라고 implements사용X 오로지 extends만 사용

public class study1 {
    public static void main(String[] args) {
        System.out.println(Util.compare(10,20));
        System.out.println(Util.compare("apple", "orange"));//error
    }

}
class Util{
    public static <T extends Number> boolean compare(T t1, T t2){
        return Double.compare(t1.doubleValue(), t2.doubleValue()) == 1 ? true:false;
    }
}
  • 와일드카드(?) 타입

제네릭 타입을 매개값이나 리턴 타입으로 사용할 때 구체적인 타입 대신 와일드 카드로 사용가능

  • 제네릭타입<?>
  • 제네릭타입<? extends 상위타입>
  • 제네릭타입<? super 하위타입>
  • 제네릭 타입의 상속과 구현

제네릭 타입은 상속 구현 가능

방식은 일반 상속과 동일하지만 제네릭 타입을 일치시켜주면 됨

320x100
반응형