Java程序需要一长串输入(参数),稍微搅拌并吐出一些输出。
我需要一种以理智的方式组织这些参数的方法,所以在输入txt文件中我想写这样的:
parameter1 = 12
parameter2 = 10
strategy1.parameter1 = "goofy"
strategy2.parameter4 = 100.0
然后读取这个txt文件,把它变成一个Java对象,当我实例化它时,我可以将它传递给对象。
我现在pyqtgraph有ParameterTree
,方便使用; Java中有类似的东西吗?我相信其他人必须有同样的需要所以我不想重新发明轮子。
(其他树形结构也可以,当然,我只想要一些易于阅读的内容)
答案 0 :(得分:1)
一种方法是将input.txt
变为input.json
:
{
"parameter1": 12,
"parameter2": 10,
"strategy1": {
"parameter1": "goofy"
},
"strategy2": {
"parameter4": 100.0
}
}
然后使用Jackson将input.json
反序列化为其中一个:
Map<String, Object>
实例,您可以深入导航以获取所有参数input.json
的结构,您的参数将驻留在JsonNode
实例(1)的优势在于它很简单,您不必创建任何类来读取参数,但是您需要遍历地图,向下转换您获得的值从中,你需要提前知道密钥(密钥匹配json对象的属性名称)。
(2)的优点是一切都可以在反序列化时正确输入;无需向下转换任何内容,因为每个类型都是您自己的类的字段,表示参数的结构。但是,如果input.json
文件的结构发生了变化,您还需要更改类的结构。
(3)是最灵活的,我相信它是最接近你的想法的选择,但是它是最繁琐的,因为它太低了-水平。有关详细信息,请参阅this article。