2017-03-04 117 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