开发者

"Key-Value Coding" for Java

In Objective-C on Apple there is something called "Key-Value Coding" that allows you to traverse the object graph using strings similar to filesystem paths. There's an informal protocol (i.e. interface) that allows objects to return values based on the "key" they're asked for. e.g. The defa开发者_运维百科ult is to return the value of a field named by the key, while relational collections like NSDictionaries can implement more interesting behavior.

Pseudo code example:

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

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

Is there anything like this for Java? It would be easy enough to implement, but I thought I'd look first.


PropertyUtils.getProperty, from apache's beanutils library, does this for JavaBean properties.


Hmm, well, in case anyone else has this question, it looks like MVEL is a good bet:

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


The Ujorm is an open source Java library providing objects based on the key‑value architecture, see the examples.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜