[Effective Java] 이왕이면 제네릭 메서드로 만들라


[Effective Java] 이왕이면 제네릭 메서드로 만들라

이왕이면 제네릭 메서드로 만들라 클래스와 마찬가지로, 메서드도 제네릭으로 만들 수 있다. 매개변수화 타입을 받는 정적 유틸리티 메서드는 보통 제네릭이다. 로타입을 사용해서 제네릭 메서드를 만들 수 있지만 경고가 발생한다. 원소 타입을 타입 매개변수로 명시하고 메서드 안에서도 타입 매개변수만 사용하게 수정하면 경고를 없앨 수 있다. 문제 없이 사용 가능하다. 불변 객체를 여러 타입으로 활용 제네릭은 런타임에 타입 정보가 소거되기에 하나의 객체를 어떤 타입으로든 매개변수화할 수 있다. 하지만 이렇게 하려면 요청한 타입 매개변수에 맞게 매번 그 객체의 타입을 바꿔주는 정적 팩터리를 만들어야 한다. 이 패턴을 싱글턴 팩터리라고 한다. 항등함수를 담은 클래스 항등함수 객체는 상태가 없으니 요청할 때마다 새로 생성하는 것은 낭비 자바의 제네릭이 실체화된다면 항등함수를 하나씩 만들어야 했겠지만 소거 방식을 사용하면 제네릭 싱글턴 하나로 충분하다. 위와 같이 제네릭을 사용해서 만들 수 있다. ID...


#EffectiveJava #Java #이펙티브자바 #자바 #제네렉 #제네릭 #제네릭메서드

원문링크 : [Effective Java] 이왕이면 제네릭 메서드로 만들라