본문 바로가기

제네릭5

제네릭 타입의 상속과 구현 제네릭 타입의 상속과 구현 제네릭 타입도 다른 타입과 마찬가지로 부모 클래스가 될 수 있다. 다음은 Product 제네릭 타입을 상속해서 ChildProduct 타입을 정의한다. public class ChildProduct extends Product { ... } 자식 제네릭 타입은 추가적으로 타입 파라미터를 가질 수 있다. 다음은 세 가지타입 파라미터를 가진 자식 제네릭 타입을 선언한 것이다. public class ChildProduct extends Product { ... } public class Product { private T kind; private M model; public T getKind() { return this.kind; } public M getModel() { retu.. 2020. 7. 2.
와일드카드 타입 와일드카드 타입(, 2020. 7. 2.
제한된 타입 파라미터 제한된 타입 파라미터() 타입 파라미터에 지정되는 구체적인 타입을 제한할 필요가 종종 있다. 예를 들어 숫자를 연산하는 제네릭 메소드는 매개값으로 Number 타입 또는 하위 클래스 타입(Byte, Short, Integer, Long, Double)의 인스턴스만 가져야 한다. 이것이 제한된 타입 파라미터(bounded type parameter)가 필요한 이유이다. 제한된 타입 파라미터를 선언하려면 타입 파라미터 뒤에 extends 키워드를 붙이고 상위 타입을 명시하면 된다. 상위 타입은 클래스뿐만 아니라 인터페이스도 가능하다. 인터페이스라고 해서 implements를 사용하지 않는다. public 리턴타입 메소드(매개변수, ...) { ... } 타입 파라미터에 지정되는 구체적인 타입은 상위 타입이거.. 2020. 7. 2.
제네릭 메소드 제네릭 메소드( R method(T t)) 제네릭 메소드는 매개 타입과 리턴타입으로 타입 파라미터를 갖는 메소드를 말한다. 제네릭 메소드를 선언하는 방법은 리턴 타입 앞에 기호를 추가하고 타입 파라미터를 기술한 다음, 리턴 타입과 매개 타입으로 타입 파라미터를 사용하면 된다. public 리턴타입 메소드명(매개변수, ...) { ... } 다음 boxing() 제네릭 메소드는 기호 안에 타입 파라미터 T를 기술한 뒤, 매개 변수 타입으로 T를 사용했고, 리턴 타입으로 제네릭 타입 Box를 사용했다. public Box boxing(T t) { ... } 제네릭 메소드는 두 가지 방식으로 호출할 수 있다. 코드에서 타입 파라미터의 구체적인 타입을 명시적으로 지정해도 되고, 컴파일러가 매개값의 타입을 보고 .. 2020. 7. 2.