通用陣列我有這個下面的方法:創建指定者方法
public static <T, U> T[] getKeysForValue(Map<T,U> map,U value){
if(map == null || map.isEmpty()) {
return null;
}
Set<T> keys = new HashSet<T>();
for (Map.Entry<T,U> entry : map.entrySet()) {
if (entry.getValue().equals(value)) {
keys.add(entry.getKey());
}
}
return keys.toArray(new T[keys.size()]);
}
我就行獲得編譯錯誤:keys.toArray(new T[keys.size()])
,它說「無法創建T的泛型數組」,這是顯而易見的。我該如何解決這個問題?
簡短的回答:選取其他語言:) – feralin
@feralin較長,真正有用的答案會更好。 Java泛型系統中一些明顯的缺陷可以通過使用顯式類型令牌來實現。不幸的是,當類型參數本身被參數化時,這些不起作用,但這不是這種情況。不知道如何在Java中執行此操作不是拖釣的好藉口。 – millimoose
@feralin我在C#和Java方面擁有同等的專業知識,所以對它們進行比較會有很大的爭議。 –