没有在这里Java泛型 - 意外的界限
public class MyList<E extends Number> extends ArrayList<E> {
}
问题。
未收到的界限。这是什么意思?为什么它错了?感谢帮助。
public class MyList<E extends Number> extends ArrayList<E extends Number> {
}
没有在这里Java泛型 - 意外的界限
public class MyList<E extends Number> extends ArrayList<E> {
}
问题。
未收到的界限。这是什么意思?为什么它错了?感谢帮助。
public class MyList<E extends Number> extends ArrayList<E extends Number> {
}
class MyList<E extends Number>
是可以的,因为你声明类型参数,所以你必须给它一个名称(E
),你可以选择将其声明为界(extends Number
)。
在extends ArrayList<E>
,而不是你只需要“使用”类型参数:与“<E>
”你指的是你的类中声明的参数,它绑定在其声明中已经给出。 “<? extends Number>
”(?
代替E
)也会被编译器接受(尽管它不是你想要的)。相反,“<E extends Number>
”被视为一个类型参数声明,所以它是一个编译错误。
public class MyList<E extends Number> extends ArrayList<E> {
private static final long serialVersionUID = -1025575227555594680L;
}
这应该工作,没有编译错误,甚至没有警告。让我知道你是否仍然有同样的错误。
你能解释一下你什么时候得到这个错误吗?这是编译错误吗?或者它是在实例化这个类或什么时候出现的? –
编译错误 – hasNoPatience