作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么以下不起作用?
Vector<? extends SomeClass> v = new Vector<SomeClass>();
SomeClass e = new SomeClass();
v.add(e);
我得到一个编译错误:
The method add(capture#1-of ? extends SomeClass) in the type Vector is not applicable for the arguments (SomeClass)
最佳答案
集合 generic wildcards从类型扩展而来的代码不允许您添加到该 Collection
。
由于编译器不确切知道您尝试添加的SomeClass
的类型,因此它不允许这样做。异常(exception)情况是 null
对象,它可以表示任何类型的 Object
。
回答您的评论:虽然您不能添加到Collection
,但它不能被描述为只读,因为它仍然可以删除 对象
。
要允许添加对象
,您需要使用已知类型:
Vector<SomeClass> v = new Vector<SomeClass>();
关于java - 泛型基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15201041/
我是一名优秀的程序员,十分优秀!