본문 바로가기
Language/Java

자바 제네릭스 개념 및 예제

by wakestand 2020. 2. 11.
반응형

자바에서 제네릭스(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 가능
		
	}

}
반응형

댓글