如何解决Java 何时使用通配符 <? extends interface> 而不仅仅是一个接口,为什么?
这两个函数都对一个都实现了 Shape 接口的对象列表进行操作,它们都是这样工作的,但我想知道为什么第一个函数必须有一个通配符来编译,而如果在函数参数中以相同方式使用通配符,则第二个函数无法编译。
public static int describe_all(List<? extends Shape> list){
for(Shape e: list){
e.describe();
}
return list.size();
}
public static void add_to(List<Shape> list){
list.add(new Circle(0.0));
list.add(new Cone(0.0,0.0));
list.add(new Rectangle(0.0,0.0));
list.add(new Sphere(0.0));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。