Java 协变性 逆变性 学习笔记 (二)

2014-11-24 11:33:14 · 作者: · 浏览: 12
wReturnType,如果返回的是ReturnType的父类,那么则上面语句则不能通过编译,只有NewReturnType是ReturnType的子类的时候,才不会违反Liskov子类原则。

Java泛型
在Java泛型中,例如
class DataHolder{

}
假如类型 A ≤ B, 但是直接使用DataHolder 和DataHolder是不可变的,之前我们已经叙述过。
但是利用java提供的通配符语法,却可以提供一个协变的类型转换。
DataHolder
≤DataHolder< Extends B>

例如:
[html]
static boolean find(Iterable< extends Object> where, Object what){
return false;
}

static boolean find(Iterable< extends Object> where, Object what){
return false;
}可以使用Iterable 来调用find函数。