Java - Generic
제네릭 (Generic) ?
- 클래스 내부가 아닌, List<?> 이렇게 <> 을 통하여 외부로부터 타입을 지정하는 문법
class Apple {} class Banana {} class FruitBox<T, U> { List<T> apples = new ArrayList<>(); List<U> bananas = new ArrayList<>(); public void add(T apple, U banana) { apples.add(apple); bananas.add(banana); } } public class Main { public static void main(String[] args) { // 복수 제네릭 타입 FruitBox<Apple, Banana> box = new FruitBox<>(); box.add(new Apple(), new Banana()); box.add(new Apple(), new Banana()); } }
제네릭 장점 ?
- 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다.
- 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다.
- 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다.