主要做兩個事,從properties配置文件中讀取信息,通過反射創建對象 思路主要有兩種,遍歷得到的屬性集合,然後設置類的屬性 遍歷類的屬性集合,從配置文件中讀取(不推薦,因為類的屬性有多樣化,會報錯) 以上方法要註意幾點: 註入的類的屬性要是String類,如果是其他類,要調用相應的方法,不然會報 ...
主要做兩個事,從properties配置文件中讀取信息,通過反射創建對象
思路主要有兩種,遍歷得到的屬性集合,然後設置類的屬性
遍歷類的屬性集合,從配置文件中讀取(不推薦,因為類的屬性有多樣化,會報錯)
try {
Properties prop = new Properties();
prop.load(new FileInputStream(
"F:\\user.properties"));
Class class1 = Class.forName("com.zlkj.config.User1");
Object newInstance = class1.newInstance();
//這樣就可以拿到本類中公有和私有方法
Field[] fields = class1.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
field.set(newInstance, prop.getProperty(field.getName()));
}
System.out.println(newInstance.toString());
} catch (Exception e) {
e.printStackTrace();
}
以上方法要註意幾點:
- 註入的類的屬性要是String類,如果是其他類,要調用相應的方法,不然會報錯;
有時候可能要拿父類的屬性,調用 getSuperClass().getDeclaredFields()
本文由博客一文多發平臺 OpenWrite 發佈!