【发布时间】:2016-04-09 11:29:57
【问题描述】:
我有这个对象:
public class TheObjectToInstantiate{
public String Name;
public String Surname;
public TheObjectToInstantiate(){
}
}
我想用配置文件实例化一个 TheObjectToInstantiate[] 数组:
TheObjectToInstantiate1.Name="Pippo"
TheObjectToInstantiate1.Surname="PippoSurname"
TheObjectToInstantiate2.Name="Pluto"
TheObjectToInstantiate2.Surname="PlutoSurname"
我试过了
public ConfigReader(){
Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream("configuration.prop");
prop.load(input);
Enumeration<?> e = prop.propertyNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String value = prop.getProperty(key);
......
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
手动扫描所有属性并实例化对象。
有没有手动比较所有属性的方法或开源包装器来做到这一点? 谢谢
【问题讨论】:
-
您可以从apache configuration 获得一些帮助并检索字符串数组
configuration.getAsStringArray("key") -
您希望这段代码做什么以及它实际做什么?
-
见this thread。如果必须在配置文件中配置数组,最好的选择是 XML。
-
我认为使用 json 文件并使用 Jackson 或 Gson 等库反序列化它们会更容易,特别是如果您希望在主对象中有更复杂的结构,如嵌套对象或 List 或数组。 mkyong.com/java/how-to-convert-java-object-to-from-json-jackson
标签: java oop object properties