제네릭을 알기전에 일단은 ArrayList를 잠깐 보자.
// ArrayList
ArrayList<String> arrList = new ArrayList<String>();
안에 보면 ArrayList에 어떤 타입의 데이터를 넣을 건지 정해준다.
이 <>를 제네릭(Generics)이라 하는데, 이 <>안에 어떠한 타입을 선언해주어 해당 ArrayList, List 등이 사용할 객체의 타입을 지정해준다는 뜻이다. 이렇게 되면 내가 사용하고 싶은 데이터 타입만 사용할 수 있게 해주는 효과가 있다.
그럼 Generics의 장점은 무엇일까?
- 타입의 안정성 : 의도하지 않은 타입의 객체가 저장되는 것을 막고, 다른 타입의 객체로 인한 타입 형태가 맞지 않아 발생하는 문제를 없애준다.
- 불필요한 형변환을 줄여 코드의 간결함 : 타입을 미리 명시함으로써 다른 타입의 객체가 저장되지 않아 객체를 꺼내 사용할 시 형변환을 통한 타입을 맞출 필요가 없어 코드를 간결하게 줄일 수 있다.