남극
Java wildcard 본문
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