我有一個帶有嵌套通配符有界類型的有界類型參數的類。在類中我需要在多個方法中使用綁定嵌套參數的類型。有沒有辦法將通配符有界類型定義爲泛型類型參數,或將其分配給通用變量名稱,以便可以在多個位置輕鬆引用?Java嵌套通配符綁定類型多次或作爲泛型類型參數
類現在實現的方式是像
class AbstractManager<F extends Filter<? extends Criteria<? extends Type>>>
{
protected void setFilter(F filter)
{
setCriteria(f.getCriteria());
}
protected <T extends Criteria<? extends Type>> void setCriteria(List<T> criteria)
{
}
protected <T extends Criteria<? extends Type>> void doSomethingWithCriteria(List<T> criteria)
{
...
}
}
不結合實際限制列表中的過濾器類型的類型,但是在我們的情況不夠好。理想情況下,列表的類型將被限制爲使用一個構造的過濾器類型,該構造可以將過濾器的推斷類型綁定到名稱上,就像方法上的有界類型參數,但在類級別上。
基本上我想這樣做
class <G extends Criteria<? extends Type> AbstractManager<F extends Filter<G>>
據我所知,可以發現,這是不可能的,但我希望,也許有在Java 7中一個不起眼的功能或新功能,會使這成爲可能。 我知道它是可以指定像
class AbstractManager<F extends Filter<G>, G extends Criteria<? extends Type>>
第二個類型參數,但我不希望子類有指定g當編譯器可以判斷它。
唯一可能的選項/解決方案,我已經能夠找到的是有一個淺子與在solution對此問題 Nested Type Parameters in Java 和 Java generics - use same wildcard multiple times
你可以給你一個你想要的最終結果的樣本嗎? –