JAVA中逆变的好处是什么?

时间:2013-08-21 16:54:42

标签: java type-erasure contravariance erasure

我想问一下在JAVA中使用逆变会有什么好处?

假设我们有两种方法:

public static <T> void f1(List<? super T> list, T item){     
        list.add(item);     
    }

public static <T> void f2(List<T> list, T item){     
        list.add(item);     
    }

我在主要部门打电话给他们:

public static main(){     
        f1(new ArrayList<Shape>(), new Cube());
        f2(new ArrayList<Shape>(), new Cube());     
    }

有什么不同?逆变似乎更糟,因为我们只能“获取”对象类型,那么为什么以及何时应该使用它?

0 个答案:

没有答案