java泛型推断从java6到java8的变化
来源:互联网 发布:巨龙软件工程有限公司 编辑:程序博客网 时间:2024/05/18 01:44
java6中:
Map<Person, List<? extends Pet>> petPeople = new HashMap<Person, List<? extends Pet>>();
不能够省略new后面类型参数部分。但是,使用泛型方法的类型参数推断可以简化一部分工作。
public class New { public static <K, V> Map<K, V> map() { return new HashMap<K, V>(); }}Map<Person, List<? extends Pet>> petPeople = New.map();
通过工具类New的静态泛型方法map,可以简化一部分工作。但是,这种类型推断只对赋值操作有效,而无法将New的map方法的返回值传递给另一个方法作为参数使用。如果想要使用,需要这么做:
New.<Person, List<? extends Pet>>map(); // 静态方法 this.<Person, List<? extends Pet>>map(); // 非静态方法
是因为map方法没有参数,所以无法进行推断,需要显式的类型说明。
java7中:
Map<Person, List<? extends Pet>> petPeople = new HashMap<>();
diamond菱形操作符可以使new后面的类型参数得以省略。但是,7中的类型推断还是有限制的,即只有构造器的参数化类型在上下文中别明显地声明了才可以。
List<String> list = new ArrayList<>();list.addAll(new ArrayList<>()); // 在java7中无法编译,而在java8中可以编译
java8中:
List<String> list = new ArrayList<>();list.addAll(new ArrayList<>()); // 可以编译
java8中可以根据方法的声明来推断泛型的类型。
阅读全文
0 0
- java泛型推断从java6到java8的变化
- Java5、Java6、Java6、Java7、Java8的新特性
- java5、java6、java7、java8的新特性
- java5、java6、java7、java8的新特性
- java5、java6、java7、java8的新特性
- java5、java6、java7、java8的新特性
- java5、java6、java7、java8的新特性
- java5、java6、java7、java8的新特性
- 泛型的类型推断
- 【Java面试知识】Java6-Java7-Java8各个版本的新特性
- 4.java 泛型的目标类型推断
- Java6学习笔记30——Java6的泛型
- Java 泛型类型推断注意之一
- 编程的另一面:从生死到变化~
- 编程的另一面:从生死到变化~
- 从QT2到QT4的变化
- 从Qt4 到Qt5的变化
- 从Qt4 到Qt5.2的变化
- Java DNS查询内部实现
- < 笔记 > Java SE
- 数据库订单数据读取到前端展示
- Django 之ORM
- 百度搜狗等搜索引擎智能提示(JSONP跨域实现自动补全搜索建议)
- java泛型推断从java6到java8的变化
- 单链表练习1--去重
- Kali Linux:Cannot Log In Account
- linux 常见文件处理命令
- 织梦DedeCMS提示信息框的修改,修改ShowMsg方法函数
- Linux 安装python3
- 耶鲁大学的心态 ,送给正在奋斗的人!
- hdu 1078 FatMouse and Cheese
- 用 队列 打印 杨辉三角