try() 语句块,自动关闭资源

今天在看JSON 工具jakson的某段源码的时候,从ObjectMapper.readTree()的方法体里看到了try(){}形式的语法,以前没见过,故查了资料记录一番。

 

该语法的作用:

        try块退出时,自动关闭括号里声明的资源,不再需要在finally里手动关闭资源,这与Python的with关键字异曲同工。

括号里资源对象的要求:

        实现了java.lang.AutoCloseable或者java.io.Closeable接口。

try()括号里可以声明多个资源对象,形如:

        try(

            InputStream is = new FileInputStream("...");

            OutputStream os = new FileOutputStream("...");

       ){

            //...

      }catch (IOException e) {

            //...

     }

总结:

        1.该语法的出现,简化了对于try语句块中必须要关闭的资源的写法,不需要再在finally块内显示关闭,但try()括号内的资源需要符合其要求(实现了java.lang.AutoCloseable或者java.io.Closeable接口)

        2.Java的语法越来越追求简洁,如此try语句以及函数式编程等方向的局部改动,希望后面越来越好用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值