为什么通用绑定“E实现I”会导致编译器错误?
问题描述:
为什么这编译:为什么通用绑定“E实现I”会导致编译器错误?
class MaxMin<E extends Comparable<E>>
{
E max=null;
E min=null;
}
...但是这不?
class MaxMin<E implements Comparable<E>>
{
E max=null;
E min=null;
}
答
泛型类型的边界只能指定extends
和super
。
引述Java Generics Tutorial(重点矿山)
要声明一个有界类型参数,列出的类型参数的名称, 随后extends关键字,随后其上限,其在 这个例子中是数字。 需要注意的是,在这种情况下,扩展在 用于一般意义上是指无论是“扩展”(如类)或 “工具”(如接口)
发布编译错误也是如此。 – Kashyap
媲美不是一个界面吗? – Joe
@IAbstractDownvoteFactory,[Comparable](http://download.oracle.com/javase/7/docs/api/java/lang/Comparable.html)是一个接口。 –