在Java中,可以通過反射來獲取泛型類型。以下是一個示例代碼:
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class GenericClass<T> {
public Class<T> getGenericType() {
ParameterizedType parameterizedType = (ParameterizedType) getClass().getGenericSuperclass();
Type[] typeArguments = parameterizedType.getActualTypeArguments();
Class<T> type = (Class<T>) typeArguments[0];
return type;
}
public static void main(String[] args) {
GenericClass<String> genericClass = new GenericClass<>();
Class<String> genericType = genericClass.getGenericType();
System.out.println(genericType.getName());
}
}
在這個例子中,GenericClass
是一個泛型類,通過調用getGenericType
方法可以獲取到泛型類型T
的Class
對象。在main
方法中,創建一個GenericClass
對象,并獲取泛型類型為String
的Class
對象并打印出來。