List objects = getProjects();
其中MassEditionObject是由Project类实现的接口.
getProjects()返回List< Project>,看起来应该没问题,因为Project是一个MassEditionObject.
但是,Eclipse给了我这个错误:
类型不匹配:无法从List< Project>转换to List< MassEditionObject>
我理解接口的一般概念以及如何使用它们,我只是不确定为什么这是无效的.
谢谢,对不起,如果这个问题已经发布.我搜索并发现了类似的情况,但没有人回答这个问题.
解决方法:
如果你想要正确的泛型版本,那就是
List extends MassEditionObject> objects = getProjects();
你应该阅读泛型,有时可能有点复杂.
当然,如果您知道将返回一个List,那么您可以将其作为类型.但是如果你有一个同样实现了MassEditionObject的类ProjectB,那么它们都是可以接受的.
List extends MassEditionObject> objects = getProjects(); // Return List
List extends MassEditionObject> objects2 = getProjectsB(); // Return List
标签:java,interface
来源: https://codeday.me/bug/20190831/1776273.html