我希望返回類型參數是類型參數和方法參數類型參數的超類。泛型方法返回超類型的類型參數和方法參數類型參數
這編譯:
import java.util.List;
interface Foo<A> {
<R, B extends R> List<R> eg1(List<B> unit);
<R> List<R> eg2(List<? extends R> unit);
}
但並不強制R必須是A的超也。我怎麼做?
實際上,我想要做的事喜歡在這些表示:
<B, R super A & B> List<R> func(List<B> unit);
<B> List<? super A & B> func(List<B> unit);
但是那些沒有編制的,當然。
有兩個目的,以這樣的:
- 我希望能夠將結果分配給任何超類A和B.
- 兩者在這種方法的實現,我需要的結果類型可以包括A和B兩者。所以編譯的第一個例子將不起作用,因爲它們不允許我在結果中放置一個A.
如果允許'R'是任何超類型的'A',並且'B'被允許是'R'的任何子類型,那麼這相當於只允許'B'被允許爲任何東西,因爲' R'始終可以是Object。你想要完成什麼樣的實際任務?你認爲需要這些仿製藥? – 2013-03-20 22:19:27
@LouisWasserman我在問題中添加了詳細信息以回答評論的第一部分。至於第二個......實際上,我應該先從事這方面的工作。實現這個接口導致了這個問題,我認爲這回答了我的問題。 – mentics 2013-03-20 23:08:45