其他分享
首页 > 其他分享> > 集合之泛型

集合之泛型

作者:互联网

1.概念

当我们写一些与集合相关的代码时,总会出现黄色警告,我们总是用注释将其去掉,现在我们可以用泛型来进行解决问题,因为Object类下面很多的包装类和引用类,进行集合相关数据的处理的时候,我们需要实例化对象,用泛型可以帮我们省掉很多的类型转换

2.示例

public static void main(String[] args) {
		List <TestTwo>lt= new ArrayList<>();//菱形泛型(jdk7之后)
		lt.add(new TestTwo("Spring",12));
		lt.add(new TestTwo("Summer",12));
		
		Iterator <TestTwo>te=lt.iterator();
		
		while(te.hasNext()) {
			TestTwo dt=(TestTwo)te.next();
			System.out.print(dt);
		}
		
		
	}

3.泛型通配符

在实际工作当中,有可能通过调用某个方法来接受一个返回值List的数据,这样就不太好确定返回值中的数据类型,这样可以使用泛型通配符<?>

List<?> list = new ArrayList<Integer>();//=号右边可能是通过调用某个方法返回的List

使用通配符限定子类和父类

public class TestThree extends TestTwo{

	public TestThree() {
		super();
		
	}

	public TestThree(String name, int age) {
		super(name, age);
		
	}
}

public class TestTwo {

	private String name;

	private int age;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public TestTwo() {

	}

	public TestTwo(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	@Override
	public String toString() {
		return "TestTwo [name=" + name + ", age=" + age + "]";
	}


}

public class Testone {

	public static void main(String[] args) {
		List<TestTwo>lt= new ArrayList<>();//菱形泛型(jdk7之后)
		lt.add(new TestTwo("Spring",12));
		lt.add(new TestTwo("Summer",12));
		
		List<TestThree>lt2=new ArrayList<>();
		
		lt2.add(new TestThree("Autumn",12));
		lt2.add(new TestThree("Winter",12));
		
		//因为TestThree是TestTwo的子类,且addAll方法是向下限定的,故两者可以结合
		
		lt.addAll(lt2);
		
		
	}

}

标签:name,age,TestTwo,集合,之泛,new,public,String
来源: https://blog.csdn.net/a1k2l45k/article/details/88934980