java1234开源博客系统
博客信息

java泛型-限制泛型类型

发布时间:『 2016-11-15 11:03』  博客类别:Java核心基础  阅读(7448) 评论(0)

java泛型-限制泛型类型


前面我们讲的泛型,可以是任意类型,但是我们有时候,需要限制类型,这样更加安全。


我们通过实例理解下,我们新建一个Animal类,然后再搞两个子类Dog和Cat类:

package com.java1234.chap06.sec02;

public class Animal {

	public void print(){
		System.out.println("动物");
	}
}
package com.java1234.chap06.sec02;

public class Dog extends Animal{

	public void print(){
		System.out.println("Dog");
	}
}
package com.java1234.chap06.sec02;

public class Cat extends Animal{

	public void print(){
		System.out.println("Cat");
	}
}


然后我们定义一个泛型类:

package com.java1234.chap06.sec02;

public class Demo <T extends Animal>{

	private T ob;

	public T getOb() {
		return ob;
	}

	public void setOb(T ob) {
		this.ob = ob;
	}

	public Demo(T ob) {
		super();
		this.ob = ob;
	}
	
	public void print(){
		System.out.println("T的类型是:"+ob.getClass().getName());
	}
}


这里我们要求  比如是Animal类或者Animal类的子类


我们再搞个测试类:

package com.java1234.chap06.sec02;

public class Test {

	public static void main(String[] args) {
		Demo<Dog> demo=new Demo<Dog>(new Dog());
		Dog dog=demo.getOb();
		dog.print();
		
		
		Demo<Cat> demo2=new Demo<Cat>(new Cat());
		Cat cat=demo2.getOb();
		cat.print();
		
		Demo<Animal> demo3=new Demo<Animal>(new Animal());
	}
}

运行输出:

Dog

Cat


这里假如我们放其他类型:

QQ鍥剧墖20161115110108.png


直接编译报错,说类型不对;



关键字:   java     泛型  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有