我试图用来从属性文件中ResourceBundle#getStringArray
检索一个String[]
.文档中对此方法的描述如下:
从此资源包或其父项之一获取给定键的字符串数组.
但是,我尝试将值作为多个单独的键/值对存储在属性文件中:
key=value1 key=value2 key=value3
并以逗号分隔的列表:
key=value1,value2,value3
但这些都不是可以使用的ResourceBundle#getStringArray
.
如何在属性文件中表示一组键/值对,以便可以使用它们进行检索ResourceBundle#getStringArray
?
一个Properties
对象可以容纳Object
s,而不仅仅是String
s.这往往被遗忘,因为它们绝大多数用于加载.properties文件,因此通常只包含String
s.文档表明调用bundle.getStringArray(key)
等同于调用(String[]) bundle.getObject(key)
.这就是问题:价值不是a String[]
,它是a String
.
我建议以逗号分隔的格式存储它并调用split()
该值.
您可以使用共享配置,它拥有一些方法getList
和getStringArray
允许您检索逗号分隔字符串列表.
嗯,从这里和这里的线程看来,这似乎是一个普遍的问题。
似乎您不是自己使用该方法并自己解析数组的值,还是您编写了自己的ResourceBundle实现并自己进行了:(。也许为此有一个Apache Commons项目...
从JDK源代码看来,PropertyResourceBundle不支持它。