java通过clazz.getName()方法获取类名后创建该类型对象
时间: 2024-03-13 13:46:20 浏览: 15
在Java中,可以通过反射机制通过类名创建该类型的对象。具体的方法是使用Class类的forName方法获取到该类的Class对象,然后使用Class对象的newInstance方法创建该类的对象。
例如,如果获取到一个类名为"com.example.Person"的Class对象,可以使用以下代码创建该类的对象:
```
Class<?> clazz = Class.forName("com.example.Person");
Object obj = clazz.newInstance();
```
需要注意的是,newInstance方法只能创建具有默认构造函数的类的对象,如果该类没有默认构造函数,则会抛出InstantiationException异常。如果需要创建带有参数的对象,可以使用Constructor类的newInstance方法,例如:
```
Class<?> clazz = Class.forName("com.example.Person");
Constructor<?> constructor = clazz.getConstructor(String.class, int.class);
Object obj = constructor.newInstance("张三", 18);
```
这段代码首先使用Class.forName方法获取到Person类的Class对象,然后使用getConstructor方法获取到Person类中的带有String和int类型参数的构造函数,最后使用Constructor类的newInstance方法创建带有指定参数的Person对象。