私は、キーとして文字列を使用するマップのようなプレジェネリックをよく扱います。これらは、キーを次のタイプの値のいずれかにマッピングしています。
- 別の地図
- リスト
- プリミティブラッパー
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");
実際、私はすでにそのようなブラウザの実装を開始しましたが、車輪の再発明をしているという印象を取り除くことはできません。