Wiele wartości w Javie.util.Właściwości
Wydaje się, że java.util.Properties przyjmuje jedną wartość na klucz propery. Czyli
foo=1
foo=2
Nie oczekuje się,
Czy istnieje klasa dla tego rodzaju arkusza właściwości wielowartościowych, która również dostarcza metodę load?
5 answers
Try:
foo=1,2
String[] foos = properties.getProperty("foo").split(",");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-07 22:00:29
Java.util.Funkcja właściwości jest dość ograniczona. Jeśli chcesz listę wsparcia, spróbuj PropertyConfiguration z Apache Commons Configuration,
Za jego pomocą możesz ustawić dowolne ograniczniki na swojej liście i automatycznie się podzieli. Możesz również robić inne fantazyjne rzeczy w pliku właściwości. Na przykład,
foo=item1, item2
bar=${foo}, item3
number=123
Możesz go odzyskać jak to,
Configuration config = new PropertiesConfiguration("your.properties");
String[] items = config.getStringArray("bar"); // return {"item1", "item2", "item3"}
int number = config.getInt("number", 456); // 456 is default value
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-16 12:28:08
Poprawna odpowiedź Nicka.
Lub, jeśli możesz nadać inną nazwę każdej wartości, możesz mieć swoje właściwości:
my.properties
foo.title=Foo
foo.description=This a big fat foo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-16 12:33:56
To nie dostarczy metody load, ale miejsca do ich przechowywania można użyć apache commons multivaluemap:
" Mapa wielowartościowa zdobi inną mapę, dzięki czemu może mieć więcej niż jedną wartość dla klucza. "
Jest to często wymóg dla parametrów żądania http...
Http://commons.apache.org/collections/apidocs/org/apache/commons/collections/map/MultiValueMap.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-16 13:07:51
Jeśli masz bardziej złożony przykład, możesz użyć następującego:
# pairs of properties
source1=foo
target1=bar
source2=anotherFoo
target2=regardingBar
source3= ...
W Twoim kodzie będziesz musiał wyszukać:
Map<String, String> myMap = new HashMap<>();
for (int i=1; i<max; i++) {
String source = properties.get("source" + i);
String target = properties.get("target" + i);
if (source == null || target == null) {
break;
}
myMap.put(source, target);
}
Wada: aktualizacja pliku właściwości. Jeśli usuniesz wartości *2, wszystkie poniższe wartości nie zostaną dodane. Aby poprawić, możesz zastąpić przerwę kontynuacją i trzymać się maksymalnie dozwolonych par.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-10 23:08:14