Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用相同键创建阵列/列表的配置属性_Java_Arrays_Configuration_Properties - Fatal编程技术网

Java 使用相同键创建阵列/列表的配置属性

Java 使用相同键创建阵列/列表的配置属性,java,arrays,configuration,properties,Java,Arrays,Configuration,Properties,我想将html选择框的源代码存储在配置文件中。它们包含一个不经常更改(但偶尔更改)的长字符串: Lorem ipsum sit amet 1号 Lorem ipsum sit amet 2号 Lorem ipsum sit amet 3号 Lorem ipsum sit amet第4号 我已经使用了commons配置。是否可以在某种配置对象(XMLConfiguration、HierarchycalConfiguration等)中使用相同的属性键来存储它们?我的意思是能够使用类似于(或列表)

我想将html选择框的源代码存储在配置文件中。它们包含一个不经常更改(但偶尔更改)的长字符串:

  • Lorem ipsum sit amet 1号
  • Lorem ipsum sit amet 2号
  • Lorem ipsum sit amet 3号
  • Lorem ipsum sit amet第4号
我已经使用了commons配置。是否可以在某种配置对象(XMLConfiguration、HierarchycalConfiguration等)中使用相同的属性键来存储它们?我的意思是能够使用类似于(或列表)的界面一次性检索它们?例如:

// reject.reason = Lorem ipsum sit amet nr. 1
// reject.reason = Lorem ipsum sit amet nr. 2
// reject.reason = Lorem ipsum sit amet nr. 3
// reject.reason = Lorem ipsum sit amet nr. 4

config.getStringArray(reject.reason)
我不想让他们在同一条线上分开,因为,第一,原因很长,第二,原因很多(>10)

我也不想将它们存储在enum中,b/c不重新编译代码就不可能更改它们


有关如何实现此目的的任何提示?

您可以将它们存储在.properties文件中,并命名为

key.0=line0  
key.1=line1  
key.2=line2
然后在代码中使用for循环遍历属性,查找
“key.”+i
,直到返回空值


我以前做过这项工作来枚举和配置com端口,效果很好。

我觉得您的示例很好。如果使用同一键指定值列表,则这些值将被视为列表,并且以下操作应有效:

reject.reason = Lorem ipsum sit amet nr. 1
reject.reason = Lorem ipsum sit amet nr. 2
reject.reason = Lorem ipsum sit amet nr. 3
reject.reason = Lorem ipsum sit amet nr. 4
在Java代码中:

PropertiesConfiguration config = new PropertiesConfiguration("gui.properties");
String[] reasons = config.getStringArray("reject.reason");

这就是我写的:)你甚至可以将标准配置对象包装在你自己的包装器中,这样做是为了你。对,这也是我的第一个想法。我简直不敢相信这个用例还没有现成的解决方案。此外,我觉得它已经由commons配置提供,我只是找不到关于如何获得它的清晰信息。我会用我的直觉试试,现在就用上面提到的。太好了,谢谢,多宝麻!您知道commons配置是否支持UTF-8编码的资源包吗?