I am trying to use ResourceBundle#getStringArray
to retrieve a String[]
from a properties file. The description of this method in the documentation reads:
Gets a string array for the given key from this resource bundle or one of its parents.
However, I have attempted to store the values in the properties file as multiple individual key/value pairs:
key=value1
key=value2
key=value3
and as a comma-delimited list:
key=value1,value2,value3
but neither of these is retrievable using ResourceBundle#getStringArray
.
How do you represent a set of key/value pairs in a properties file such that they can be retrieved using ResourceBundle#getStringArray
?
A Properties
object can hold Object
s, not just String
s. That tends to be forgotten because they're overwhelmingly used to load .properties files, and so often will only contain String
s. The documentation indicates that calling bundle.getStringArray(key)
is equivalent to calling (String[]) bundle.getObject(key)
. That's the problem: the value isn't a String[]
, it's a String
.
I'd suggest storing it in comma-delimited format and calling split()
on the value.