java泛型集合

    java中List集合声明的时候需要传入一个类型,表示集合中的元素类型。如果集合声明为父类,则不能把子类的集合实例赋值给父类集合的引用,但是可以在父类集合中添加子类对象,如果要实现子类集合实例赋值给父类集合引用,需要在父类中使用集合的向下限定,即泛型声明<? extends Parent>,下面看看例子。

public class Demo {
	
	public static void main(String[] args) {
		List<Parent> parents = new ArrayList<>();
		parents.add(new Parent());
                // 这里是可以添加子类的实例到集合中
                parents.add(new Child());
		
                // 这个赋值是不允许的 编译的时候会报错
                List<Parent> parents2 = new ArrayList<Child>();
                
                // 这样就可以了
               List<? extends Parent> list = new ArrayList<Child>();
		
	}
	
}

class Parent {
	
}

class Child extends Parent {
	
}

猜你喜欢

转载自kibear.iteye.com/blog/2346640