Generics
정의 및 특징
- 다양한 타입의 객체를 다루는 메서드, 컬렉션 클래스에서 컴파일 시에 타입 체크
- 미리 사용할 타입을 명시해서 형 변환을 하지 않아도 되도록 함
- 객체의 타입에 대한 안정성 향상 및 형 변환의 번거로움 감소
표현
- 클래스 또는 인터페이스 선언 시 <>에 Type Parameter 표시
- public class Class_Name<T> {}
- public interface Interface_Name<T> {}
객체 생성
- 변수 쪽과 생성 쪽의 타입은 반드시 같아야 함
- ClassName<Number> generic = new ClassName<Number>();
- ClassName<Number> generic = new ClassName<>();
- ClassName generic = new ClassName(); = ClassName<Object> generic = new ClassName<Object>();
클래스 생성
class NormalBox {
private Object some;
public Object getSome() {
return some;
}
public void setSome(Object some) {
this.some = some;
}
}
class GenericBox<T> {
private T some;
public T getSome() {
return some;
}
public void setSome(T some) {
this.some = some;
}
}