Class.forName参数为泛型
时间: 2024-02-25 18:54:21 浏览: 203
Class.forName
在Java中,我们可以使用Class.forName()方法将字符串转换为对应的Class对象。在泛型中,我们可以将泛型类型的字符串表示形式转换为对应的Class对象。但是,由于泛型类型在编译时擦除,因此在运行时无法获取泛型类型的实际类型,也就无法将泛型类型的字符串表示形式直接传递给Class.forName()方法。但是,我们可以通过传递泛型类型的Class对象来获取泛型类型的字符串表示形式。下面是一个简单的示例:
```java
public class GenericClass<T> {
private Class<T> clazz;
public GenericClass(Class<T> clazz) {
this.clazz = clazz;
}
public Class<T> getGenericType() {
return clazz;
}
}
public class TypeDemo {
public static void main(String[] args) {
GenericClass<String> genericClass = new GenericClass<String>(String.class);
System.out.println(genericClass.getGenericType());
}
}
```
在上面的示例中,我们创建了一个泛型类GenericClass<T>,并在构造方法中传递了泛型类型的Class对象。在构造方法中,我们将泛型类型的Class对象保存到成员变量中。通过调用getGenericType()方法,我们可以获取到泛型类型的Class对象。在main方法中,我们创建了一个泛型类型为String的GenericClass对象,并打印了其泛型类型的Class对象。
阅读全文