java中的泛型

近期在巩固一下java基础,看了《thinking in java》后,对泛型很多概念性的东西了解不透彻,遂查了一下资料,记录了一下,详细如下:

 

/**
	 * <? extends Object>:上边界限定,即实际类型只能为Object或者Object的导出类
	 * <? super Integer>:下边界限定,即实际类型只能为Integer或者Integer的父类
	 * 擦除:编译器在编译的时候将会擦除泛型类型,将泛型类型变为实际类型
	 * 协变:由窄类型向宽类型转换,如:String向Object的转换
	 * 逆变:由宽类型向窄类型转换,如:Object向String的转换
	 * T与?的区别:T标识泛型,在new的时候必须带上泛型,如:List<T> list6=new ArrayList<T>();然而List<T> list6=new ArrayList<String>()则会报错
	 * ?标识通配符,标识任意类型,在new的时候可以带上实际类型后者不带类型,如:List<?> list7=new ArrayList<String>();或者List<?> list7=new ArrayList();然而List<?> list7=new ArrayList<?>()则会报错
	 */
	List<?> list=new ArrayList<String>();
	
	List<? extends Object> list2=new ArrayList<String>();
	List<? extends Object> list3=new ArrayList<Object>();
	
	List<? super Integer> list4=new ArrayList<Number>();
	List<? super Object> list5=new ArrayList<Object>();
	
	List<T> list6=new ArrayList<T>();
	List<?> list7=new ArrayList<String>();


以上则是相关知识点,对于了解java的泛型有一定的帮助

推荐大家一个Java的学习网站:Java知识学习网,Java资料下载,Java学习路线图,网址:https://www.java1010.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值