Class.fromName 泛型
时间: 2023-07-08 12:21:23 浏览: 188
Class.forName()方法是Java反射机制中的一个方法,用于根据类的全限定名获取对应的Class对象。在泛型中,我们可以使用Class.forName()方法动态地获取泛型类型的Class对象。下面是一个简单的示例:
```java
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class GenericClass<T> {
private Class<T> clazz;
public GenericClass() {
Type type = getClass().getGenericSuperclass();
ParameterizedType parameterizedType = (ParameterizedType) type;
clazz = (Class<T>) parameterizedType.getActualTypeArguments()[0];
}
public Class<T> getGenericType() {
return clazz;
}
}
public class TypeDemo {
public static void main(String[] args) {
GenericClass<String> genericClass = new GenericClass<String>() {};
System.out.println(genericClass.getGenericType());
}
}
```
在上面的示例中,我们创建了一个泛型类GenericClass<T>,并在构造方法中通过反射获取泛型类型的Class对象。通过调用getGenericType()方法,我们可以获取到泛型类型的Class对象。在main方法中,我们创建了一个泛型类型为String的GenericClass对象,并打印了其泛型类型的Class对象。
阅读全文