通过反射获取带参构造方法并使用
1、Constructor
* Class类的newInstance()方法是使用该类无参的构造函数创建对象,
* 如果一个类没有无参的构造函数,可以调用Class类的getConstructor(String.class,int.class)方法获取一个指定的构造函数
* 然后再调用Constructor类的newInstance(“张三”,20)方法创建对象
2、示例代码如下:
package com.jh.www;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.lang.reflect.Constructor;
public class Test3 {
/** Constructor
* Class类的newInstance()方法是使用该类无参的构造函数创建对象,
* 如果一个类没有无参的构造函数, 就不能这样创建了,
* 可以调用Class类的getConstructor(String.class,int.class)方法
* 获取一个指定的构造函数然后再调用Constructor类的newInstance("张三",20)方法创建对象
* **/
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("config.properties"));
Class clazz = Class.forName(br.readLine());
//获取到有参构造;
Constructor c = clazz.getConstructor(String.class,int.class);
//创建对象;
Person p = (Person) c.newInstance("张三",18);
System.out.println(p);
}
}