남극

Java wildcard 본문

JAVA/Data Structure

Java wildcard

펭1구 2020. 3. 8. 06:22

 

wildcard

 

제네릭 코드에서 "?"와일드카드라고 불립니다

알 수 없는 타입을 나타내며 다양한 상황에서 사용할 수 있다는 장점을 가지고 있습니다

우선 와일드카드에는 세 가지 종류가 있습니다

 

  • Unbounded Wildcards
  • Upper Bounded Wildcards
  • Lower Bounded Wildcards

첫 번째 Unboubded Wildcards에 대해서 알아보도록 하겠습니다

 

Unbounded Wildcards

처음에 정의를 할 때 말씀드렸었던 것이 Unbounded Wildcards입니다

"?"에 아무런 예약어가 붙지 않은 것입니다

말 그대로? 에 아무런 것도 붙지 않은 것입니다

 

Upper Bounded Wildcards
public static void test(ArrayList<? extends Number> list) {}

이런 식으로 메서드를 하나 만들었습니다.  "? extends Number"라고 쓰여있습니다. Number라는 double, float 등을 가지고 있는 클래스를 상속받는다면 Number 클래스 안에 있는 클래스들을 모두 사용할 수 있겠죠?

Lower Bounded Wildcards
public static void test(ArrayList<? super String> list) {}

이번에는 extends가 super로 바뀌었습니다

super 메서드는 간략하게 설명해서 부모 클래스를 사용한다는 것입니다

그렇다고 하면 String의 부모 클래스를 사용할 수 있게 됩니다.

그 예로는 Object 가 있습니다.

부족하지만 감사합니다!

 

 

 

'JAVA > Data Structure' 카테고리의 다른 글

Java List  (0) 2020.03.08
Java Map  (0) 2020.03.08
Java Generics  (0) 2020.03.08
JAVA Queue  (0) 2020.03.08
Java Stack  (0) 2020.03.08
Comments