在java上通过配置文件实例化对象

在java上通过配置文件实例化对象,java,oop,object,properties,Java,Oop,Object,Properties,我有一个目标: public class TheObjectToInstantiate{ public String Name; public String Surname; public TheObjectToInstantiate(){ } } 我想用配置文件实例化对象设置[]的数组: TheObjectToInstantiate1.Name="Pippo" TheObjectToInstantiate1.Surname="PippoSurname" TheObjectToInst

我有一个目标:

public class TheObjectToInstantiate{
 public String Name;
 public String Surname;
 public 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();
            }
        }
    }

}
public-ConfigReader(){
Properties prop=新属性();
InputStream输入=null;
试一试{
输入=新文件输入流(“configuration.prop”);
道具载荷(输入);
枚举e=prop.propertyNames();
而(e.hasMoreElements()){
字符串键=(字符串)e.nextElement();
字符串值=prop.getProperty(键);
......
}
}捕获(IOEX异常){
例如printStackTrace();
}最后{
如果(输入!=null){
试一试{
input.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
}
扫描所有属性并手动稳定对象

有没有方法或开源包装器可以在不手动比较所有属性的情况下做到这一点?
谢谢

使用json文件并使用类似Jackson的库对其进行反序列化更容易。你也可以检查一下 及

json文件如下所示:

{
  "Name" : "foo",
  "Surname" : "bar"
}
还可以反序列化对象列表:

List<TheObjectToInstantiate> myObjects = mapper.readValue(new File("G:\\myobjectlist.json"), new TypeReference<List<TheObjectToInstantiate>>(){});


[{
    "Name" : "foo1",
    "Surname" : "bar1"
},
{
    "Name" : "foo2",
    "Surname" : "bar2"
}]
List myObjects=mapper.readValue(新文件(“G:\\myobjectlist.json”),新类型引用(){});
[{
“名称”:“foo1”,
“姓氏”:“bar1”
},
{
“名称”:“foo2”,
“姓氏”:“bar2”
}]

它还支持更复杂的结构,如嵌套对象或主对象中其他对象的列表或数组。

您可以从字符串数组
配置中获得帮助并检索字符串数组。GetAsstringaray(“键”)
您希望此代码做什么,以及它实际做什么?请参阅。如果您必须在配置文件中配置数组,最好的选择是XML。我认为使用json文件并使用诸如Jackson或Gson之类的库对其进行反序列化会更容易,特别是如果您希望在主对象中具有更复杂的结构,如嵌套对象或列表或数组。
List<TheObjectToInstantiate> myObjects = mapper.readValue(new File("G:\\myobjectlist.json"), new TypeReference<List<TheObjectToInstantiate>>(){});


[{
    "Name" : "foo1",
    "Surname" : "bar1"
},
{
    "Name" : "foo2",
    "Surname" : "bar2"
}]