我处理了很多前泛型,例如以字符串为键的 Maps。他们将键映射到以下类型的值之一:
- 另一张地图
- 一个列表
- 基元包装器
您可以使用XPath或类似的查询来访问集合内容:
myMap/FIRST_LIST[2]/SECOND_LIST[1]/MY_MAP/MY_PRIMITIVE
我正在寻找的是一个库,它允许我将访问者函数应用于集合的多个元素。基本功能可能看起来像这样
MyMapBrowser browser = new MyMapBrowser(myMap);
browser.applyVisitor("FIRST_LIST[*]/SECOND_LIST[*]/MY_MAP/MY_PRIMITIVE",
new AbstractVisitor<String>() {
visit(String s) {
// do something with the strings
}
});
如果有可能首先为不同级别的收藏注册多个访问者,然后开始访问迭代,那也是很棒的。它可能看起来像这样:
browser.registerVisitor(SECOND_LIST, new AbstractVisitor<MyList> { ... )
browser.doVisiting("FIRST_LIST[*]/SECOND_LIST[*]/MY_MAP/MY_PRIMITIVE");
事实上,我已经开始实现这样的浏览器,但我无法摆脱我正在重新发明轮子的印象。