본문 바로가기

라이브러리 활용 - 제네릭

제한된 타입 파라미터

제한된 타입 파라미터

  • 모든 타입으로 대체할 수 없고, 특정 타입과 자식 또는 구현 관계에 있는 타입만 대체할 수 있는 타입 파라미터


    출처, 이것이 자바다


  • 상위 타입은 클래스뿐만 아니라 인터페이스도 가능


    출처, 이것이 자바다


package ch13.sec04;

/*
  제한된 타입 파라미터 제네릭 메소드
 */

public class GenericExample {

    //제한된 파라미터 T에 적용하는 타입 : Number클래스 이거나 Number클래스를 상속하는 하위데이터 타입
    public static <T extends Number> boolean compare(T t1, T t2) {

        //T의 타입을 출력
        System.out.println("compare(" + t1.getClass().getSimpleName() + ", " +
                            t2.getClass().getSimpleName() + ")");
        //Number의 메소드 사용
        double v1 = t1.doubleValue(); //double 형변환
        double v2 = t2.doubleValue();

        return (v1 == v2);
    }

    public static void main(String[] args) {
        //제네릭 메소드 호출
        boolean result1 = compare(10, 20); //Integer
        System.out.println(result1);
        System.out.println();

        boolean result2 = compare(4.5, 4.5); //Double
        System.out.println(result2);
        System.out.println();
    }
}

'라이브러리 활용 - 제네릭' 카테고리의 다른 글

와일드카드 타입 파라미터  (0) 2023.02.02
제네릭 메소드  (0) 2023.02.02
제네릭 타입  (0) 2023.02.02
제네릭이란?  (0) 2023.02.02