0

我有一个字符串数组 ( String[]),其中包含几个表示 XPath 查询的字符串对象。这些查询是在设计时预先确定的。这个数组被传递给一个执行查询的对象,然后返回一个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}),但我仍然需要通过硬编码字符串(例如“Package”)引用查询。我也想过使用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 回答