«Кодирование значения ключа» для Java - PullRequest
6 голосов
/ 22 октября 2009

В 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 ]

5 голосов
/ 22 октября 2009

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

2 голосов
/ 22 октября 2009

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

http://mvel.codehaus.org/Property+Navigation

1 голос
/ 22 октября 2009

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

...