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; } }' –
是的,這將是一種方式來做到這一點。您可以在界面中指定方法,以便所有的執行枚舉都必須實現它。 –
您是否認爲這種解決方案過度消耗只是爲了避免查詢的「硬編碼」標識(即通過整數 - 數組索引或通過字符串映射鍵)?或者它是否值得澄清? –