일부 메소드에 대한 인스턴스화 하위 클래스에 대한 참조를 저장해야하는 상위 클래스가 있습니다. 이렇게하려면 부모 클래스의 생성자에 제네릭을 적용합니다.자체 클래스를 상위 제네릭에 전달
public abstract class Parent<T> {
Class<T> clazz;
public Parent(Class<T> clazz) {
this.clazz = clazz;
}
}
하위 클래스에서 동일한 일반 자식 유형을 적용한 상위 클래스를 확장합니다.
public class Child extends Parent<Child> {
public Child() {
super(Child.class);
}
}
다른 사람에게 이상하게 보입니까? 나는 자식 클래스가 너무 불필요하다고 느낍니다. 호출 클래스와 같은 유형 인 생성자와 제네릭에서 동일한 유형을 다시 사용하기 때문에.
이 패턴은 일반적으로 제네릭과 함께 사용됩니다. 물론 실제 질문은 왜 이런 수업이 필요한지입니다. 레이어링 위반 일 수 있습니다. – eckes
나에게 잘 어울린다 – shmosel