실전 Java Generic <T> 이란?

Posted by 친절한 Generic
2017.11.18 07:20 프로그래밍/Java



실전 Java Generic <T>이란?


안녕하세요 10년차 개발자 오미즈입니다. 

실전에서 자주 사용하는 Generic 을 알아보겠습니다.


아래와 같은 코드를 많이 보셨을 겁니다.

ArrayList<String> list = new ArrayList<String>();

ArrayList는 기본적으로 어떤 형식의 데이터도 다 저장할 수 있습니다.

너무 편하죠. 하지만 내가 무슨 데이터 타입을 넣었는지 까먹을 경우가 많습니다.

예전에는 String 형을 넣어놓고 int형으로 뽑는다던지 하면서 오류를 범하는 경우가 많이 있었습니다.

이런 문제를 해결하고자 자바 1.5(?)부터 이런 제너릭을 지원했습니다.


결국 Generic의 사용목적은 return 타입을 일관성있게 유지하여 casting 오류를 범하지 않도록 유도하고,

Collection들의 값 또는 key의 타입을 통일시키기 위함입니다.



▪ 클래스 데이터 타입 자리에 T 로 치환하여 표기한다

▪ T로 치환된 자리의 타입은 인스턴스 생성시 결정된다

▪ T 자리에는 반드시 클래스 타입만 들어올 수 있다. : 기본자료형 불가

▪ 코드의 간결성 증대

• 하나의 클래스로 다양한 타입을 가지는 클래스로 대응 가능

▪ 데이터 타입에 대해 프로그램 코드의 안전성 증대

• 인스턴스 생성 시 결정된 타입과 다른 타입이 사용될 경우 컴파일 타임 에러 발생


이해하기 어려운 부분은 질문 남겨주세요.


감사합니다.

이 댓글을 비밀 댓글로

티스토리 툴바