public class Part extends HashMap<Class<?>, Integer>{
private static Random random = new Random(47);
private static List<ThinkinJava13.Factory<? extends Filter>> list = new ArrayList<ThinkinJava13.Factory<? extends Filter>>();static {
list.add(new FuelFilter.Factory())
}
public static void main(String[] args) {
System.out.println("1");
}
}
class Filter extends Part{}
class FuelFilter extends Filter{
private int i = 1;
public static class Factory implements ThinkinJava13.Factory<FuelFilter>{
@Override
public FuelFilter create() {
// TODO Auto-generated method stub
return new FuelFilter();
}}
}
这里list的类型明明是ThinkinJava13.Factory<? extends Filter> 继承filter的factory类型, 为什么FuelFilter.Factory() 也可以添加进去?