자바 제네릭스(Generics)에 대해서 - T[], List<T> 등의 의미
ArrayAdapter의 두 생성자를 보면 다음과 같이 되어있다.
그런데 세 번째 매개인자의 데이터 타입이 T[] objects로 되어 있다.
ArrayAdapter(Context context,
int textViewResourceId, T[] objects)
⇒ T[] objects가 의미하는 것은 어떤 배열이 여기에 올수 있다는 뜻이다.
T[]가 의미하는 것은 배열은 배열인데 data type은 어떤 data type도 가능하다는 뜻이다.
ArrayAdapter(Context context,
int textViewResourceId, List<T> objects)
⇒ List<T> objects가 의미하는 것은 이 매개 인자의 자리에 List라는 interface의 객체가 올수 있다는 뜻이다.
List<T>이므로 List가 담는 내용물의 data type은 T타입이므로 사용자가 정의하는 data type 뭐든지 올수 있다.
그런데 List라는 interface를 보면 List를 implements한(상속받은) 하위 클래스들이 있는데 이들 중 어느 하나가 올수 있다는 뜻이다.
대표적으로 ArrayList<E>가 올수 있다는 뜻이다.
public interface List implements Collection<E>
java.util.List<E>
Known Indirect Subclasses
AbstractList<E>, AbstractSequentialList<E>, ArrayList<E>, CopyOnWriteArrayList<E>,
LinkedList<E>, ObservableArrayList<T>,ObservableList<T>, Stack<E>, Vector<E>
'Java' 카테고리의 다른 글
추상 메소드(abstract method)의 목적, 용도, 쓰임새(추상 메소드를 만드는 이유) (0) | 2016.05.16 |
---|---|
Java의 Reference 타입 자료형에 대해 (0) | 2015.11.09 |
BufferedReader에 대한 개념 세우기 (0) | 2015.11.04 |
String을 byte[] 배열로 변환하는 법 - getBytes() 메소드에 대해 (0) | 2015.11.04 |
Map과 List에 대한 간단한 이해 (0) | 2015.10.30 |