如何限制在泛型类中允许为“T”的类型?
问题描述:
我有一堂课Foo<T>
。我怎么能说,我想T
是一些实施BarInterface
类?写作只是class Foo<T implements BarInterface>
不会编译。如何限制在泛型类中允许为“T”的类型?
答
使用extends
而不是implements
。
......如果我手头有一个编译器,我可以马上测试它:它不应该是'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注释补充:在泛型上下文中的扩展既有'扩展'又有'实现'的含义,我在开始时发现它很混乱。 – helpermethod 2010-07-20 08:13:32
@Andreas:不,它不适用于通配符,它也适用于模板参数。 – 2010-07-20 11:04:24