【问题标题】:Is there a Parameter Tree implementation in Java?Java中有参数树实现吗?
【发布时间】:2015-02-08 23:58:28
【问题描述】:

Java 程序需要一长串输入(参数),稍微搅动一下并吐出一些输出。

我需要一种方法来以一种理智的方式组织这些参数,所以在输入 txt 文件中我想像这样编写它们:

parameter1 = 12
parameter2 = 10
strategy1.parameter1 = "goofy"
strategy2.parameter4 = 100.0

然后读取这个 txt 文件,把它变成一个 Java 对象,我可以在实例化它们时传递给对象。

我现在的 pyqtgraph 有ParameterTree,使用起来很方便; Java中有类似的东西吗?我相信其他人一定也有同样的需求,所以我不想重新发明轮子。

(当然,其他树形结构也可以,我只是想要一些易于阅读的东西)

【问题讨论】:

  • 嗯,JSON就是一个例子

标签: java parameters io tree parameter-passing


【解决方案1】:

一种方法是将input.txt 变成input.json

{
    "parameter1": 12,
    "parameter2": 10,
    "strategy1": {
        "parameter1": "goofy"
    },
    "strategy2": {
        "parameter4": 100.0
    }
}

然后使用Jacksoninput.json 反序列化为其中之一:

  1. Map<String, Object> 实例,您可以深入导航以获取所有参数
  2. 您自己的某个类的实例,它模仿 input.json 的结构,您的参数所在的位置
  3. JsonNode 实例将成为树的根

(1) 的优点是它很容易,并且您不必创建任何类来读取参数,但是您需要遍历地图,向下转换从中获得的值,并且您需要提前知道键(键匹配 json 对象的属性名称)。

(2) 具有在反序列化时正确键入所有内容的优点;无需向下转换任何内容,因为每种类型都是您自己的类的字段,代表参数的结构。但是,如果您的 input.json 文件的结构发生了变化,您也需要更改类的结构。

(3) 是最灵活的,我相信它是最接近您的想法的选项,但是使用起来最乏味,因为它太低级了。详情请参考this article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2015-01-21
    • 2012-08-20
    • 1970-01-01
    相关资源
    最近更新 更多