[CH5] 제네릭 표현 (와일드 카드 타입)

‍bng4535·2023년 3월 30일
0

메서드 선언부를 보는데 해석이 안되는 부분이 있어서 찾아보았습니다.

    <R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper);

에서 <? super T, ? extends Stream<? enteds R>> 를 해석하면,
? super T는 ?는 T의 수퍼타입 중 하나라는 의미로 T이거나 T의 부모 클래스를 말합니다.
? extends R 은 ?는 R을 상속받는 것들 중 하나라는 의미로 R이거나 R의 자식 클래스를 의미합니다.

이러한 제네릭 표현은 와일드카드 타입이라고 부르며, 제네릭 타입을 좀 더 유연하게 표현할 수 있게 해줍니다.

git : https://github.com/BanditBool2/ReadingRecord/issues/25

profile
공부 기록

0개의 댓글