반응형
자바에서 제네릭스(Generics)란
<데이터타입> 설정해 주는 것인데
제네릭스를 설정하면
제네릭스에 입력한 데이터타입과 동일해야만
값을 삽입할 수 있게 된다
위 예제를 보면
ArrayList 작성 시 제네릭스를 입력하지 않으니
String, Integer, Array 등
여러 데이터타입이 모두 들어가는 것이 보인다
이게 좋아보일 수 있겠지만
실제 사용 시 여러 데이터타입이 들어오면
처리가 매우 힘들기 때문에
제네릭스를 설정해서
특정 데이터타입만 들어올 수 있게 하는 것이다
for 문 하단을 보면 아래와 같은 코드가 보이는데
ArrayList<String> list2 = new ArrayList<String>();
list2에 String 타입으로 제네릭스를 설정해주니
String 타입으로만 삽입할 수 있는 것이 보인다
즉 제네릭스(Generics)란
객체에 값을 삽입할 때
특정 데이터타입만 삽입할 수 있도록
조건을 달아주는 것이라고 보면 된다
예제에 사용한 코드는 아래와 같다
import java.util.ArrayList;
public class GenericsExample {
public static void main(String[] args) {
int arr[] = {1,2,3,4};
ArrayList list = new ArrayList(); // 제네릭스를 사용하지 않은 list
list.add("asd");
list.add(123);
list.add(arr); // list에 데이터타입 제한 없이 add 가능
for(int i = 0; i<list.size(); i++) {
System.out.println(list.get(i).getClass().getName()); // 타입 확인하기
}
ArrayList<String> list2 = new ArrayList<String>(); // 제네릭스를 사용한 list
list2.add("asd"); // <Generics> 에 해당하는 데이터타입만 add 가능
}
}
반응형
'Language > Java' 카테고리의 다른 글
자바 Hashtable 예제부터 사용법까지 (1) | 2020.02.17 |
---|---|
자바 변수 타입 확인방법 (0) | 2020.02.11 |
자바 Primitive Type, Wrapper Class 사용이유 (0) | 2020.02.10 |
자바 배열을 리스트로, 리스트를 배열로 변환방법 (2) | 2020.02.10 |
자바 개선된 for문 사용법 (0) | 2020.02.10 |
댓글