반사 기반서브클래스 범주 유형 판단하기
971 단어 범형류
package cn.generic;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class Base<T,PK> {
protected Class<T> entityClass;
protected Class<PK> pkClass;
public Base() {
Type genType = getClass().getGenericSuperclass();
Type[] params = ((ParameterizedType)genType).getActualTypeArguments();
this.entityClass = (Class)params[0];
this.pkClass = (Class)params[1];
}
}
하위 클래스 및 테스트 범용 코드:
package cn.generic;
public class Impl extends Base<String, Long> {
public static void main(String[] args) {
Impl impl = new Impl();
System.out.println(impl.entityClass); // class java.lang.String
System.out.println(impl.pkClass); // class java.lang.Long
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring에서 범용 클래스를 초기화하는 방법의 예만약 직접 초기화할 때 구체적인 유형을 지정하려면 우리는 이렇게 쓸 수 있다 기본 범용 Spring 초기화 만약 우리가 스프링 용기로 이 클래스를 초기화하려면, 예를 들어 위의 클래스에 @Named 주석을 추가하는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.