案例:根據配置文件,實例化對象
src下創建一個“配置文件”config.txt,內容如下:
className=ahjava.p07reflect.Cat
package ahjava.p07reflect;
import java.io.FileReader;
import java.lang.reflect.Constructor;
import java.util.Properties;
class Cat {
public Cat() {
System.out.println("Cat構造");
}
public Cat(String name) {
System.out.println("Cat構造:" + name);
}
}
public class T34讀取配置造對象 {
public static void main(String[] args) throws Exception {
String className = 讀取配置文件();
get構造方法(className);
}
private static String 讀取配置文件() throws Exception {
// 讀,載,關
Properties p = new Properties();
String _configPath = System.getProperty("user.dir") + "\\src\\ahjava\\" + "config.txt";
FileReader fr = new FileReader(_configPath);
p.load(fr);
fr.close();
// 獲取屬性
String str = p.getProperty("className");
return str;
}
private static void get構造方法(String className) throws Exception {
Class<?> c = Class.forName(className);
// 獲取構造
Constructor<?> constr = c.getConstructor();
// 實例化對象
Object o = constr.newInstance();
System.out.println(o);
// 獲取帶參構造方法,並實例化對象
constr = c.getConstructor(String.class);
o = constr.newInstance("Tiger");
System.out.println(o);
}
}
Cat構造
ahjava.p07reflect.Cat@15db9742
Cat構造:Tiger
ahjava.p07reflect.Cat@6d06d69c