java 泛型的几点备忘
2015-06-15 15:35
323 查看
1、在java虚拟机中是没有泛型的,所有泛型类的参数都会被擦除,如下:
这两个方法对于java编译器来说是一样的,因此无法编译通过。
2、下面两种写法都是OK的,但推荐用后者:
3、关于<? extends >和 <? extends >
public void test(List<String> list, int num){} public void test(List<Integer> list, int num){}
这两个方法对于java编译器来说是一样的,因此无法编译通过。
2、下面两种写法都是OK的,但推荐用后者:
public <I extends Fruit> void test(List<I> list){} public void test(List<? extends Fruit> list){}
3、关于<? extends >和 <? extends >
//<? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类 //<? super T> 表示类型下界,表示参数化类型是此类型的超类型(父类型) List<? extends Fruit> list = new ArrayList<Apple>(); //flist.add(new Fruit()); 编译错误 list.add(null); Apple apple = (Apple) list.get(0); Fruit item = (Fruit) list.get(0); List<? super Fruit> list1 = new ArrayList<Fruit>(); list1.add(new Fruit()); list1.add(new Apple()); list1.add(null); Fruit item1 = (Fruit) list1.get(0); //Apple apple = (Apple)list1.get(0);编译错误
相关文章推荐
- Java GC
- 重踏学习Java路上_Day04(java 基础上,选择结构,循环结构,转跳)
- java 注解
- 30 Java Programming Tips and Best Practices for Beginners
- #笔记#圣思园 JavaSE 第73讲——异常 Exception,自定义异常
- 在eclipse导入Extjs4.0项目卡死解决方案
- Java——(九)IO流
- 【Java技术点】Java屏幕截取
- 【j2ee spring】33、巴巴运动网的产品类别展示
- java 慎用ArrayList的contains方法,使用HashSet的contains方法代替
- 用maven+springMVC创建一个项目
- Spring-ldap 操作LDAP
- 简单实例: 基于Struts2的登录系统
- struts2上传文件添加进度条
- JDK自带的动态代理Proxy类和InvocationHandler接口
- MyEclipse + Maven开发Web工程的详细配置过程
- Android SDK(版本2.3-5.1),搭建完好的eclipse+Android开发环境
- 在eclipse下使用mysql
- javaweb基本组件之listener的使用
- Java截屏代码,截取全屏