JAVA

[JAVA] 제네릭(Generic)이란?

깃짱 2023. 4. 12. 10:59
반응형

💋 제네릭이란?

데이터의 타입(data type)을 일반화(generalize)하는 것을 의미한다.

 

 

💋 제네릭 사용 이전의 코드

 

ArrayList values = new ArrayList();
values.add("this is string");
values.add(1);
values.add(new Position(1, 2));

String first = (String) values.get(0);
int second = (int) values.get(1);
Position third = (Position) values.get(2);

 

제네릭을 통해서 타입을 지정하기 이전의 세상은... 이렇게 리스트가 자유로웠다!

한 리스트에 String, int, 참조타입 등등 원하는건 다 넣을 수 있었다. 완전 좋은거 아닌가?

 

바로 아래에서 문제가 발생한다. get()을 통해 하나를 가져오려 해도 매번 형변환이 필요했다.

 

 

💋 제네릭 사용 이후의 코드

 

List<String> values = new ArrayList<String>();
values.add("first");
values.add("second");

String first = values.get(0);
String second = values.get(1);

 

<> 안에 내가 사용하고 싶은 타입을 지정해줄 수 있다. 

컴파일러가 내가 추가한 타입이 지정된 타입인지 검사하기 때문에, String의 List에 Integer를 저장하게 되면 컴파일 에러가 발생하게 된다. 

 

 

 

 

반응형