상세 컨텐츠

본문 제목

[JAVA] 제네릭(Generic) 정리(2) - 와일드카드

Spring/JAVA

by Chan.94 2022. 5. 31. 18:11

본문

반응형

이전글 : [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) - 제네릭 메소드

반응형

관련글 더보기

댓글 영역

>