java - 实现和集合

标签 java generics collections interface

为什么这不起作用...

public ArrayList<Edge> getEdges() {

return A;

//A is an Arraylist of type 'Action'. Action implements Edge.

}

Edge接口(interface)包括:public ArrayList getEdges();

尽管如此。

public Edge getEdges() {

return B;

//B is an 'Action'. Action implements Edge.

}

Edge接口(interface)包括:public Edge getEdges();

谢谢你, 切特

最佳答案

因为同时EdgeAction 的子类型, ArrayList<Action>不是 ArrayList<Edge> 的子类型.

使用ArrayList<? extends Edge>相反。

你可以看看this tutorial's 4. Wildcard section ,尽管我建议您通读一下,因为它确实很有帮助。

关于java - 实现和集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098402/

相关文章:

java - 使用 document.parse(string) 时获取 SAXException

java - 如何通过双击表格行从一个选项卡移动到另一个选项卡

java - 为什么这种通用分配是非法的?

使用反射时的.net运行时类型转换

c# - 将通用类型传递到继承树

具有多态引用的 Java 集合

collections - Backbone .js:将元素添加到集合而不重新渲染所有集合

java - 什么是相当于 tcp-outbound-gateway 的 java 配置?

java - HQL查询会不会使用Hibernate二级缓存

.net - 在 .NET 中自动扩展数组?