Java 8 之后,还有哪些进化的功能?( 七 )
在Java 9中这个边缘情况终于解决了,因此现在的菱形运算符更通用:
try-with-resources语句中允许使用没有发生实质性改变的变量
Java 7引入的另一项改进就是try-with-resources语句,从此程序员无需再担心释放资源的问题。
我们来演示一下这个功能。首先,在Java 7之前如果想正确关闭资源,需要这样写:
有了try-with-resources语句,资源就可以自动释放,省却了许多繁文缛节:
尽管这个功能非常强大,但它有几个缺点(Java 9解决了这些缺点)。
虽然这种方法能处理多个资源,但很容易让代码丧失可读性。像这样在try关键字之后以列表的方式定义变量,看起来非常不符合常见的Java编程习惯:
而且,在Java 7之前,如果你想用这种写法来处理已有的变量,就必须定义一个临时变量。(例如JDK-8068948中的例子:https://bugs.openjdk.java.net/browse/JDK-8068948。)
为了解决这些问题,Java增强了try-with-resources,现在不仅能够处理新创建的变量,还能够处理局部常量,或者实际上不可变的局部变量:
推荐阅读
- 明日之后|明日之后:唯一一次无差评的联动玩法,萌新可能没见过!
- 手机游戏|酒馆战棋:全员恶霸,对5星随从已经过时?新英雄还有新玩法!
- 今屿|今屿媲美花海,小胖回归还有位置吗?李九:小胖不出,花海无敌
- 黑暗与光明|炉石传说英雄卡,曾经强度T0,两年过去,还有人记得雷诺吗?
- 暴雪|暴雪新总裁刚上任3个月就离职,这一次,暴雪还有救吗
- 吃鸡游戏|“吃鸡”高达天降模式的隐藏玩法!不仅可以打卡,而且还有物资!
- |原神梦里生花,可以改变稻妻的样子了,还有420钻,胡桃在等你哦
- 阴阳师|除了爱玩游戏的新岛民,《动物森友会》新版本还有一个电竞彩蛋
- 猪八戒|王者荣耀:李元芳为什么突然间强势了起来?很久没加强,还有天敌
- 明日之后|明日之后“人尸大战”展现中国精神:人类的未来我们共同争取