假設我有這個類聲明泛型時是否有語法糖?
class Generic<T extends List<? extends Integer>, E extends List<? extends Integer>>
或任何長泛型類型鑽石括號內。在使用這個類時,爲了保持類型安全,我需要不斷提及泛型類型。因此,舉例來說,如果我要遍歷上面的類的Set
或操縱它,我需要做到以下幾點:
class SomeClass {
<T extends List<? extends Integer>, E extends List<? extends Integer>> void add(Set<Generic<T, E>> mySet, Generic<T, E> toAdd) {
mySet.add(toAdd);
}
<T extends List<? extends Integer>, E extends List<? extends Integer>> void iterate(Set<Generic<T, E>> mySet) {
for (Generic<T, E> myGeneric : mySet)
{
// do something with myGeneric
}
}
}
然而,這變得非常麻煩非常快。我搜索並找不到某種方式來正確處理這個問題。我知道可以寫Generic<?, ?>
,但是這儘可能地妨礙了類型安全檢查。
有沒有辦法正確處理這個問題?某種方式來命名T extends List<? extends Integer>, E extends List<? extends Integer
並將該名稱用作語法快捷方式?
快速注:我不是在談論Java 7中引入了初始化語法糖在右手邊可以使用類型推斷從聲明空鑽石括號。
不,不存在 –