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

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

 

try() 语句块,自动关闭资源_第1张图片

try() 语句块,自动关闭资源_第2张图片

该语法的作用:

        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语句以及函数式编程等方向的局部改动,希望后面越来越好用

你可能感兴趣的:(Java)