Java泛型类型引用

时间:2014-11-26 20:04:00

标签: java generics

我只是偶然发现我以前没有尝过的情况。 我有这个:

class A<DATA>

class B extends A<SomeSpecificDataClass>

现在,我想声明第三个类:

class C <T extends A<DATA>{
    public someMethod(T instance, DATA data){}
}

我知道我可以向实例询问其数据,但对于我正在构建的API,我真的更喜欢这样的语法。任何想法怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:2)

由于DATA将是另一个泛型,因此您应该声明该类使用两个泛型:

class C<DATA, T> {
}

然后,您可以根据T定义DATA的其他要求:

class C<DATA, T extends A<DATA>> {
}