반응형
public abstract class AbsFragmentNew<T extends Object> extends Fragment

이런 class를 만들 때 "T"의 데이터 타입을 알아내기 위한 방법

Type superclass = getClass().getGenericSuperclass();
if(superclass instanceof ParameterizedType) {
Type[] genericTypes = ((ParameterizedType) superclass).getActualTypeArguments();
if (genericTypes.length > 0) {
try {
Type genericType = genericTypes[0];
String className = genericType.toString().split(" ")[1];
classType = (Class<T>) Class.forName(className);
} catch (ClassNotFoundException e) {
Log.e(TAG, e);
}
}
}


반응형
,