2017-03-04 122 views
2

標題有點令人困惑,當你看到我的類聲明時你會明白。通用類型聲明來自泛型類型

我有一個泛型類型

public abstract class BaseFoo<T> 

而另一個類,從該類

BaseBar<P extends BaseFoo> 

我想什麼延伸的通用型抽象類是從存取權限泛型類型BaseFoo內部BaseBar,例如:

BaseBar<P extends BaseFoo<T>> { 
    T mVar; 

雖然先前的聲明是不正確的,至少說我的IDE:P 我可以achive與這樣的:

BaseBar<T, P extends BaseFoo<T>> 

但它看起來多餘的我,我想知道是否有辦法而無需在兩個類中聲明泛型。

謝謝!

+0

呀,它看起來像一樣,我搜索了很多發佈之前,但它的棘手,使這個問題 – Gonzalo

回答

1

這不是多餘的說:

BaseBar<T, P extends BaseFoo<T>> 

您需要的BaseBar類型聲明T,如果你想將它傳播到BaseFoo。如果你沒有輸入類型,就離開BaseFoo,那麼它就是原始的,你的編譯器不能再幫你了。

+0

但是,如果我聲明一個類,例如:'BaseFooImpl延伸BaseFoo '和'BaseBarImpl延伸BaseBar ',是它不是多餘的說:'BaseBarImpl擴展BaseBar ' – Gonzalo