java泛型上下边界

1、extends 上边界不能放,因为上边界作用下,不知道要放什么样的类型 所以会报错,但是可以取
2、super 下边界不能取,因为在下边界的作用下,不知道要取出来什么样的数据(本身类型,object) 但是可以放


public class Test {

	//上界通配符
	class Fruit {}
	class Apple extends Fruit {}
	class Plate<T extends  Fruit>{
		private T item;
		public Plate(T t){item=t;}
		public void set(T t){item=t;}
		public T get(){return item;}
	}
	public void testOne (){
//		Plate<Fruit> p=new Plate<Apple>(new Apple());
		Plate<? extends Fruit> p=new Plate<Apple>(new Apple());
		//上界通配符不能放
//		p.set(new Apple());
		Fruit fruit = p.get();
	}
	//下界通配符
	class PlateNew<T>{
		private T item;
		public PlateNew(T t){item=t;}
		public void set(T t){item=t;}
		public T get(){return item;}
	}
	public void testTwo (){
		PlateNew<? super Fruit> p=new PlateNew<Fruit>(new Fruit());

		//存入元素正常
		p.set(new Fruit());
		p.set(new Apple());

		//读取出来的东西只能存放在Object类里。
//		Apple newFruit3=p.get();    //Error
//		Fruit newFruit1=p.get();    //Error
		Object newFruit2=p.get();

	}



}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值