如何限制在泛型类中允许为“T”的类型?

问题描述:

我有一堂课Foo<T>。我怎么能说,我想T是一些实施BarInterface类?写作只是class Foo<T implements BarInterface>不会编译。如何限制在泛型类中允许为“T”的类型?

使用extends而不是implements

+0

......如果我手头有一个编译器,我可以马上测试它:它不应该是'class Foo ' - 'extends'是[WildcardBound](http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.5.1)... – 2010-07-20 08:13:11

+1

+1注释补充:在泛型上下文中的扩展既有'扩展'又有'实现'的含义,我在开始时发现它很混乱。 – helpermethod 2010-07-20 08:13:32

+1

@Andreas:不,它不适用于通配符,它​​也适用于模板参数。 – 2010-07-20 11:04:24