0
我有一个包含多个表示XPath查询的String对象的String数组(String[]
)。这些查询是在设计时预先确定的。此数组传递给执行查询的对象,然后返回一个带有结果的Map<String, ArrayList<String>>
。Java数组:使用常量标识向量的元素
的地图是由这样的:
{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[]
表单中的所有查询,以便将它们传递给执行查询的对象。
我可以使用你的策略,然后改变查询从简单字符串到查询类型的方式。 我需要使枚举来保存String属性(来保存查询表达式)。 'public enum ModelQueries implements Query { PACKAGE(“\\ XPathQuery ...”); 字符串查询;ModelQueries(String query){this.query = query; } }' –
是的,这将是一种方式来做到这一点。您可以在界面中指定方法,以便所有的执行枚举都必须实现它。 –
您是否认为这种解决方案过度消耗只是为了避免查询的“硬编码”标识(即通过整数 - 数组索引或通过字符串映射键)?或者它是否值得澄清? –