当前位置:  开发笔记 > 编程语言 > 正文

如何在属性文件中指定值,以便可以使用ResourceBundle#getStringArray检索它们?

如何解决《如何在属性文件中指定值,以便可以使用ResourceBundle#getStringArray检索它们?》经验,为你挑选了3个好方法。

我试图用来从属性文件中ResourceBundle#getStringArray检索一个String[].文档中对此方法的描述如下:

从此资源包或其父项之一获取给定键的字符串数组.

但是,我尝试将值作为多个单独的键/值对存储在属性文件中:

key=value1
key=value2
key=value3

并以逗号分隔的列表:

key=value1,value2,value3

但这些都不是可以使用的ResourceBundle#getStringArray.

如何在属性文件中表示一组键/值对,以便可以使用它们进行检索ResourceBundle#getStringArray



1> Robert J. Wa..:

一个Properties对象可以容纳Objects,而不仅仅是Strings.这往往被遗忘,因为它们绝大多数用于加载.properties文件,因此通常只包含Strings.文档表明调用bundle.getStringArray(key)等同于调用(String[]) bundle.getObject(key).这就是问题:价值不是a String[],它是a String.

我建议以逗号分隔的格式存储它并调用split()该值.


谢谢,您提供的答案是我所怀疑的。我已经使用split()实现了某些东西,只是希望可以利用类库中已有的东西,而不是自己动手做。

2> João Silva..:

您可以使用共享配置,它拥有一些方法getListgetStringArray允许您检索逗号分隔字符串列表.



3> Chris Kimpto..:

嗯,从这里和这里的线程看来,这似乎是一个普遍的问题。

似乎您不是自己使用该方法并自己解析数组的值,还是您编写了自己的ResourceBundle实现并自己进行了:(。也许为此有一个Apache Commons项目...

从JDK源代码看来,PropertyResourceBundle不支持它。

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有