본문 바로가기

Android

<? super T>

아무래도 쓰던것만 쓰다가 보니 자주 안쓰는건 낯설다

<T extends className> 형태는 자주 사용했지만
<? super className> 은 꽤나 낯설다 =_ =;

어쨋든 알아봐야 하니 검색을 하고 글을 찾는데 이 글을 보니 감이 잡힌다.
https://stackoverflow.com/questions/4343202/difference-between-super-t-and-extends-t-in-java

extends 는
List<? extends Number> foo3 = new ArrayList<Number>(); // Number "extends" Number (in this context)
List<? extends Number> foo3 = new ArrayList<Integer>(); // Integer extends Number
List<? extends Number> foo3 = new ArrayList<Double>(); // Double extends Number


super 는
List<? super Integer> foo3 = new ArrayList<Integer>(); // Integer is a "superclass" of Integer (in this context)
List<? super Integer> foo3 = new ArrayList<Number>(); // Number is a superclass of Integer
List<? super Integer> foo3 = new ArrayList<Object>(); // Object is a superclass of Integer


묘하군

'Android' 카테고리의 다른 글

android studio layout 초기화 하기 (macos)  (0) 2018.06.27
room  (0) 2018.06.27
Observable.interval  (0) 2018.06.27
Rx적용...  (0) 2018.06.27
Dagger2 tutorial  (0) 2018.06.27