이전글 : [JAVA] 제네릭(Generic) 정리(1) - 기본
물음표는 와일드카드로 불리며, 알 수 없는 타입을 나타낸다.
와일드카드는 파라미터, 필드, 지역 변수의 타입 또는 때때로 반환 타입과 같은 다양한 상황에서 사용될 수 있다.
매개변수의 자료형 제한
메소드를 정의하는 과정 중에 변수로 ArrayList를 받는다고 가정해보자.
public void process(ArrayList list) { . . . }
process메소드는 ArrayList가 담고 있는 객체가 Number를 상속받고 있는 객체여야 정상적으로 동작하도록 설계되었다고 가정하자.
하지만 지금 상태라면 ArrayList는 어떤 객체를 가지고 있는지와 상관없다.
이경우 에 Number를 상속받는 객체가 아니라면 에러가 발생할 것이다.
위와 같은 상황에서 와일드 카드를 사용하여 타입을 제한할 수 있다.
public void process(ArrayList<? extends Number> list) { . . . }
process메소드의 매개변수 ArrayList에 담긴 객체는 Number 또는 Number를 상속받은 클래스로 제한한다
구분 | 설명 |
<? extends T> | T와 그 자손들을 구현한 객체들만 매개변수로 가능 / 상한 제한(upper bound) |
<? super T> | T와 그 조상들을 구현한 객체들만 매개변수로 가능 / 하한 제한(lower bound) |
<?> | 제한 없음 |
[Spring & Spring Boot/JAVA] - [JAVA] 제네릭(Generic) 정리(3) - 제네릭 메소드
Enum 장점 (0) | 2022.06.20 |
---|---|
[JAVA] 제네릭(Generic) 정리(3) - 제네릭 메소드 (0) | 2022.06.01 |
[JAVA] 제네릭(Generic) 정리(1) - 기본 (0) | 2022.05.30 |
[JAVA] 변수, 객체의 메모리 관리 (Call By Value, Call By Reference) (0) | 2022.05.14 |
[JAVA] 우선순위큐 (Priority Queue) (0) | 2022.02.24 |
댓글 영역