JDK11都有了,可我们连JDK7的try-with-resources都不会用

经常看到网上有很多关于JDK关于 lamda,nio,等版本更新的说明,但可能我们连try-catch的使用都不会
从Java 7 开始编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。
不多说,举个栗子:
Connection conn=null;
try{
conn=DriverManager.getConnection(.....);
stmt=conn.prepareStatement(..);
}catch(Exception ex){
//。。。
throw new XXXException(...,e);
}finally{
try{
if(stmt!=null){
stmt.close()
}
}
}

如果用 try-with-resources 可以写成
try(Connection conn=.... ;
stmt=conn.prepareStatement;
){
}catch(){
}
不再需要finally.
那JDK是按照什么规则 进行关闭的呢? JDK会查询try()中的对象类型是否 implements AutoClosable。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容