从另一个对象中一般检索对象

时间:2014-12-02 15:21:24

标签: java reflection

是否有Java库使用该对象的“路径”的String表示来检索对象?

例如,假设我有一个对象

 Map<String, Map<Integer, Map<String, String>>> myMap;

myMap包含这样的数据

"Dog"->[1,["name","Rex"]],[2,["name","Bowwowser"]]

理想情况下,我正在寻找一种方法,我可以传入“Dog.1.name”(也许是String.class)并接收一个包含“Rex”的字符串。我不太清楚这个技术名称是什么,虽然这个概念看起来与XPath类似,并且在JSTL中访问模型中的数据。

1 个答案:

答案 0 :(得分:0)

JXPath至少会让你接近。我没有测试过这个特殊的例子,但是你正在寻找类似的东西:

JXPathContext context = new JXPathContext(myMap);
String firstDogName = (String)context.getValue("Dog/1/name");

但是,根据他们的文档,JXPath目前仅支持String - 键控映射;但如果您用Map<Integer, Foo>替换List<Foo>,则需要设置。