Java 泛型 - 意外边界

标签 java generics arraylist bounds

这里没有问题

public class MyList<E extends Number> extends ArrayList<E> {
}

.

无异常(exception)的约束。这是什么意思?为什么错了?感谢您的帮助。

public class MyList<E extends Number> extends ArrayList<E extends Number> {

}

最佳答案

class MyList<E extends Number>可以,因为您声明 一个类型参数,所以您必须给它一个名称 ( E ),并且您可以选择将其声明为有界的 ( extends Number)。

extends ArrayList<E>相反,您只需要“使用”一个类型参数:使用“<E>”,您指的是在您的类中声明的参数,其声明中已经给出了一个绑定(bind)。 “<? extends Number> ”(用 ? 代替 E )也将被编译器接受(尽管这不是您想要的)。相反,“<E extends Number> ”被视为类型参数声明,因此它是一个编译错误。

关于Java 泛型 - 意外边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42553212/

相关文章:

java - 数组 java.lang.NullPointerException 为空

java - Spring、Interceptor的extractPathPatterns功能无法正常工作

协议(protocol)扩展内关联类型的快速初始化

java - 如何获取类型为 T 的字段的类?

java 用 array.asList 初始化数组列表

java - Spring Controller : Custom annotation with combined Spring annotations does not work

c# - 使用泛型检查默认值

java PreparedStatement Arraylist SQL

java - 将数组列表显示为字符串

java - 创建文件不写入java