class Fruit {
public int add(){
return 0;
}
}
class Apple extends Fruit {}
class Jonathan extends Apple {}
class Orange extends Fruit {}
class CovariantArrays {
public static void main(String[] args) {
//上界
List<? extends Fruit> flistTop = new ArrayList<Apple>();
flistTop.add(null);
// flistTop.get(0).add();
//add Fruit对象会报错
//flist.add(new Fruit());
Fruit fruit1 = flistTop.get(0);
//下界
List<? super Apple> flistBottem = new ArrayList<>();
flistBottem.add(new Apple());
flistBottem.add(new Jonathan());
flistBottem.forEach(a -> {
if (a instanceof Jonathan) {
System.out.println("a instanceof Jonathan"); //正确输入
}
});
//get Apple对象会报错
//Apple apple = flistBottem.get(0);
}
}