본문 바로가기

카테고리 없음

제네릭

Generic 타입에는 <?>도 존재한다.

?는 알수없는 타입이며, 사용법으로는 아래와같다

<?> : 모든 객체 자료형, 내부적으로는 Object로 인식 - 와일드 카드, 제한 없음

<? super 객체형> : 명시된 객체자료형의 상위 객체, 내부적으로는 Object로 인식 - 하위 클래스 제한

<? extends 객체자료형> : 명시된 객체자료형을 상속한 하위객체, 내부적으로는 명시된 객체 자료형으로 인식 - 상위 클래스 제한

 

제네릭 클래스

class GenericClass<K, V> {

private K first; // K 타입(제네릭)

private V second; // V 타입(제네릭) 

}

 

제네릭 메서드

public <T> Box<T> genericMethod(T t){ ... } => public <타입파라미터> 리턴타입 메서드명 (매개변수) { ... }

클래스는 타입파라미터가 뒤에 메서드는 앞에