Java7新特性--实战篇(三)

2014-11-24 09:01:34 · 作者: · 浏览: 2
tion了,而需要写成 Exception。

具体来说,在Java SE 7及以后版本中,当你在catch语句里声明了一个或多个异常类型,并且在catch块里重新抛出了这些异常,编译器根据下面几个条件来去核实异常的类型:

- Try块里抛出它
- 前面没有catch块处理它
- 它是catch里一个异常类型的父类或子类。


特性6:创建泛型对象时类型推断

只要编译器可以从上下文中推断出类型参数,你就可以用一对空着的尖括号<>来代替泛型参数。这对括号私下被称为菱形(diamond)。

在Java SE 7之前,你声明泛型对象时要这样

[java]
List list = new ArrayList();


而在Java SE7以后,你可以这样

[java]
List list = new ArrayList<>();


因为编译器可以从前面(List)推断出推断出类型参数,所以后面的ArrayList之后可以不用写泛型参数了,只用一对空着的尖括号就行。当然,你必须带着”菱形”<>,否则会有警告的。

Java SE7 只支持有限的类型推断:只有构造器的参数化类型在上下文中被显著的声明了,你才可以使用类型推断,否则不行。

[java]
List list = new ArrayList<>();
list.add("A");

//这个不行
list.addAll(new ArrayList<>());

// 这个可以
List< extends String> list2 = new ArrayList<>();
list.addAll(list2);


注意:菱形<>主要用在变量声明里。

类里也可以使用类型推断


准备返京,未完待续~


Java 7 从呼之欲出到千呼万唤使出来,经历了好几年,期间sun也易主,真是不容易。

不过想要马上大规模的使用还不现实,Java 6从推出到大规模的使用花了两三年的时间吧(这里我不太清楚)甚至更久,到现在还有好多大公司使用 java5或4呢,所以这也是我为什么把java 7装到虚拟机上的缘故,毕竟商业的东西,还是以稳定为主。
以上介绍了些皮毛,未来还要靠大家自己多多努力,争取两年后,java 7正式商用了,大家也能对java 7掌握的更熟练写,更好的应用,提高自己的工作效率。
作者:luqin1988