java协变性

java中数组是协变的,但泛型不是协变的,所以java5用通配符来弥补不足,    这样传递Collection<Shape>或者Collection<Square>都能编译通过,正常运行。

public static double totalArea(Collection<? extends Shape> arr){

double total = 0;

for(Shape s : arr)

if(s !=null)

total += s.area();

return total;

}

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试