如何优化ini4j对ini文件的读取?

问题描述 投票:0回答:1

我使用Java(Anylogic)和ini4j库从ini文件读取模型的初始参数。现在我读取一个参数的代码如下所示:

Wini ini = new Wini(new File(FILE_SETTINGS_NAME)); 
… 
Ini.Section sec = ini.get(“AAA”); 
… 
if (sec.containsKey("useAutoAlgoritm")) { 
useAutoAlgoritm = ini.get(“AAA”, "useAutoAlgoritm", int.class) == 1 ? true : false; 
} 

我不喜欢代码的第二部分。

首先,我必须使用相同的名称useAutoAlgoritm三次次,首先检查ini文件中该字段是否存在(如果不存在,那么我采用默认值)。然后在作业期间两次。

其次,我还没弄清楚如何在ini文件中存储布尔值,所以我必须将其转换为布尔值

第三,我有各种各样的类,以及其中变量的构成。因此,本质上有必要为每个类(对于必要类的每个组合)重新编写代码。也许有一些通用的下载方法?

谢谢

我阅读了这个论坛示例,以及 ini4j 帮助

java anylogic ini4j
1个回答
0
投票

只需仔细阅读 javadoc:

Wini ini = new Wini(new File(FILE_SETTINGS_NAME)); 
… 
Ini.Section sec = ini.get(“AAA”); 
… 
boolean useAutoAlgorithm = sec.get("useAutoAlgoritm", int.class, 0) == 1;
false; 
} 

注:

  • ini4j 的 API 非常糟糕,有大量名为
    get
    的方法跨越多层层次结构,执行截然不同的操作。在某些时候,“当我使用这个蹩脚的库时,我发现我的代码很丑陋”只能这样回答:“然后编写你自己的/吸收它/使用另一个/使用你喜欢的 API 编写一个包装器”。
  • x ? true : false
    是一件非常愚蠢的事情。就写
    x
  • 每当您觉得自己在重复代码时,就编写方法。您的第三个问题太模糊,无法以更有意义的方式回答。
© www.soinside.com 2019 - 2024. All rights reserved.