在我的代碼中的幾個地方中,我有ArrayLists和TreeSets,它們的泛型類型是我希望轉換的。例如,我有一個ArrayList<Integer>
,我想轉換爲ArrayList<Long>
。或者我有一個TreeSet<BigInteger>
,我希望將其轉換爲TreeSet<String>
。在Java中轉換泛型集合的類型
所有這些轉換都可以完成,但是我必須爲每個類型轉換創建一個不同的函數。因此,我想創建一個通用的函數,其簽名看起來是這樣的:
public static <Q,T> Collection<Q> convert(Collection<T> col, Class<Q> Q)
我想是從col
獲取類(如ArrayList
),創建該類的一個新的集合,然後鍵入Q
(稱爲newCol
),然後遍歷col
並將類型爲T
的每個元素轉換爲Q
類型,並將其添加到newCol
,最後返回newCol
。
我該怎麼做?
使用Java 8將會非常簡單。你可以使用Java 8嗎? –