2017-03-04 29 views
2

タイトルはちょっと混乱していますが、私のクラス宣言が見えるときは分かります。ジェネリック型のジェネリック型からジェネリック型

私はジェネリック型

public abstract class BaseFoo<T> 

と抽象クラスを持っていると私が望む何をそのようなクラスから

BaseBar<P extends BaseFoo> 

を拡張してジェネリック型を持つ別のクラスからジェネリック型をアクセスもすることです例えばBaseBar内部BaseFoo、:

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

前の宣言は、私のIDEが言うこと少なくとも、誤っているものの:

BaseBar<T, P extends BaseFoo<T>> 

しかし、それは私のために冗長に見えるが、私は道があったかどうかを知りたい:P 私はこのようなものであることachiveができ両方のクラスでジェネリック型を宣言する必要はありません。

ありがとうございます!

+0

うん、それは同じように見え、私は投稿する前に多くのことを探索しますが、この質問をするためにトリッキーだ – Gonzalo

答えて

1

それは言って冗長ではありません。

BaseBar<T, P extends BaseFoo<T>> 

あなたはBaseFooにそれを伝播する場合BaseBarの種類にTを宣言する必要があります。タイプなしでBaseFooを残してしまった場合、それは生のままで、コンパイラはもうあなたを助けません。

+0

しかし、私は、例えば、クラスを宣言した場合: 'BaseFooImplはBaseFoo を拡張'と 'BaseBarImplは' BaseBar を拡張し、それは'BaseBarImplはBaseBar を拡張します。 – Gonzalo

関連する問題