2017-07-25 95 views
-1

我使用JDK 7, 如何有效地轉化List<Map<String,Object>> to List<Map<String,?>>的Java轉換地圖<字符串,對象>到地圖<String, ?>

的代碼片段如下所示

List<Map<String, Object>> data = fetchData(qry, providedFiltersAndParams); 

List<Map<String, ?>> convertedData = new ArrayList<>(); 
for (Map<String, Object> eachRow : data) { 
    convertedData.add(eachRow); 
} 
filler.fillData(convertedData); 

fecthData返回List<Map<String, Object>>。然而,filler.fillData期望的參數爲List<Map<String, ?>>

我想避免創建一個新的列表和for循環。

+1

您可以轉換爲'(List)'來繞過通用類型信息。 – khelwood

+0

啊,這似乎是最簡單和有效的。我們不需要創建一個新列表並複製objs。謝謝。 – pkm

回答

0

嘗試以下操作:

List<Map<String, Object>> data = new ArrayList<>(); 
filler.fillData(new ArrayList<>(data)); 

new ArrayList<>(data)複製objecs到一個新的ArrayList直接適應的List<Map<String, ?>>簽名。

+0

我的編譯器報告爲不兼容類型。 khelwood的評論爲我工作 – pkm

相關問題