0

String[]XPath クエリを表す複数の String オブジェクトを含むString 配列 ( ) があります。これらのクエリは、設計時に事前に決定されます。この配列は、クエリを実行し、結果とともに を返すオブジェクトに渡されますMap<String, ArrayList<String>>

マップは次のように作成されます。

{Query that originated the result, Results vector}

これらの結果を取得して何らかの作業を実行する必要があるため、個々のクエリを知る必要があります。例えば:

ArrayList<String> firstQueryResults = xpathResults.getObject(modelQueries[0]);
... logic pertaining only to the first query results ...

整数 (最初のクエリの場合は "0") で結果を取得するのは私にはうまくいかないので、より明確にするために、列挙型のような定数を使用してそれらを識別する可能性があるかどうか疑問に思っていました:

... = xpathResults.getObject(QueryDictionary.MODEL_PACKAGE);
... = xpathResults.getObject(QueryDictionary.COMPONENT_PACKAGE);
OR
... = xpathResults.getObject(ModelQueries.PACKAGE);
... = xpathResults.getObject(ComponentQueries.PACKAGE);

マップを使用することを考えMap<String, String>ましたMap {ID, Query}(例: 使用することも考えましたが、enumsいくつかのクエリ セット (モデル、コンポーネントなど) があり、String[]クエリを実行するオブジェクトにそれらを渡すために、フォーム内のセット内のすべてのクエリを取得する必要もあります。

4

1 に答える 1

1

マーカーインターフェイスを使用できます。

public interface QueryType {
}

次に、列挙型はこのインターフェイスを実装できます。

public enum ModelQueries implements QueryType {
   ...
}

public enum ComponentQueries implements QueryType {
   ...
}

等々。

次に、getObjectメソッドはタイプのパラメーターを受け入れることができますQueryType。このようなものをお探しでしたか?あなたの質問を正しく理解していない場合はお知らせください。

于 2012-05-25T16:00:07.230 に答える