Java的“键值编码”

时间:2009-10-21 23:03:23

标签: java key-value-coding

在Apple上的Objective-C中,存在一种称为“键值编码”的东西,它允许您使用类似于文件系统路径的字符串遍历对象图。有一个非正式的协议(即接口),允许对象根据他们要求的“密钥”返回值。例如默认设置是返回由键命名的字段的值,而像NSDictionaries这样的关系集合可以实现更有趣的行为。

伪代码示例:

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

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

Java有这样的东西吗?这很容易实现,但我想我会先看看。

3 个答案:

答案 0 :(得分:5)

来自apache的beanutils库的

PropertyUtils.getProperty为JavaBean属性执行此操作。

答案 1 :(得分:2)

嗯,好吧,如果其他人有这个问题,看起来MVEL是一个不错的选择:

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

答案 2 :(得分:1)

Ujorm是一个开源Java库,提供基于键值架构的对象,请参阅examples