제네릭 Generic 프로그래밍

김아무개·2023년 5월 1일

Java

목록 보기
7/23

제네릭 자료형

  • 클래스에서 사용하는 변수의 자료형이 여러개 일 수 있고, 그 기능은 동일한 경우
    클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정할 수 있다.
  • 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식이다.
  • 자바 10부터 자료형 추론이 가능해졌다.
  • <T extends 클래스>
    - T 자료형 범위 제한
    - 상위 클래스에서 선언하거나 정의하는 메서드만 활용 할 수 있게 제한한다.

간단한 Generic 클래스 생성 예시

public class GenericPrinter<T extends Number> {
    private T anything;

    public T getAnything() {
        return anything;
    }

    public void setAnything(T anything) {
        this.anything = anything;
    }

    @Override
    public String toString() {
        return "GenericPrinter{" +
                "anything=" + anything +
                '}';
    }
}

간단한 Generic 클래스 사용 예시

public class GenericStudy {
    public static void main(String[] args) {
/* 		String 클래스는 Number를 상속받은 클래스가 아니기 때문에 에러남

        GenericPrinter<String> stringPrinter = new GenericPrinter<>();
        stringPrinter.setAnything("룰루");
        System.out.println(stringPrinter.getAnything());
*/

        GenericPrinter<Double> doublePrinter = new GenericPrinter<>();
        doublePrinter.setAnything(5.5);
        System.out.println(doublePrinter.getAnything());

        GenericPrinter<Integer> integerPrinter = new GenericPrinter<>();
        integerPrinter.setAnything(1);
        System.out.println(integerPrinter.getAnything());
    }
}

profile
Hello velog! 

0개의 댓글