在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有这样的东西吗?这很容易实现,但我想我会先看看。

有帮助吗?

解决方案

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

其他提示

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

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

Ujorm 是一个开源Java库,提供基于密钥‑价值架构的对象,请参阅示例

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top