java Class<T> 作为参数
时间: 2023-07-08 15:10:56 浏览: 47
在Java中,Class<T>对象可以作为方法的参数,用于表示一个类的类型。这样可以在运行时动态地指定需要操作的类。例如:
```
public void printClassName(Class<?> clazz) {
System.out.println("The class name is: " + clazz.getName());
}
```
在这个例子中,printClassName()方法接受一个Class<?>类型的参数clazz,用于表示需要打印类名的类。通过调用clazz.getName()方法,可以获取这个类的名称,并打印出来。
使用Class<T>作为方法参数的一个常见场景是反射,通过Class<T>对象可以获取一个类的构造函数、方法、字段等信息,并进行动态调用。例如,获取一个类的无参构造函数并创建新的实例:
```
public <T> T newInstance(Class<T> clazz) throws Exception {
Constructor<T> constructor = clazz.getDeclaredConstructor();
constructor.setAccessible(true);
return constructor.newInstance();
}
```
在这个例子中,newInstance()方法接受一个Class<T>类型的参数clazz,用于表示需要创建新实例的类。通过调用clazz.getDeclaredConstructor()方法获取无参构造函数的引用,然后调用Constructor.newInstance()方法创建新实例。需要注意的是,这个例子中的newInstance()方法抛出了Exception异常,需要在调用时进行异常处理。