"Кодирование ключ-значение" для Java

в Objective-C на Apple есть что-то под названием "кодирование ключ-значение", которое позволяет вам пересекать граф объектов, используя строки, похожие на пути к файловой системе. Существует неофициальный протокол (т. е. интерфейс), который позволяет объектам возвращать значения на основе "ключа", который они запрашивают. например, по умолчанию возвращается значение поля с именем ключа, в то время как реляционные коллекции, такие как NSDictionaries, могут реализовать более интересное поведение.

псевдокод пример:

foo.bar = new baz();
foo.bar.mymap = new map();
foo.bar.mymap['bom'] = 2;

foo.valueForKeyPath("bar.mymap.bom") # 2

есть ли что-нибудь подобное для Java? Это было бы достаточно легко реализовать, но я подумал, что сначала посмотрю.

3 ответов


PropertyUtils.метод getproperty, из библиотеки beanutils apache, делает это для свойств JavaBean.


Хм, Ну, если у кого-то еще есть этот вопрос, похоже, что MVEL-хорошая ставка:

http://mvel.codehaus.org/Property + навигация


на Ujorm является библиотекой Java с открытым исходным кодом, предоставляющей объекты на основе архитектуры ключ-значение, см. примеры.