try(){}的使用
含义
Java7 增强try语句的功能,在try后面的括号中()初始化的一个或者多个资源,会在程序结束的时候自动关闭这些资源
原理
- 实现Closeable接口(内部只有一个close的抽象方法)
- try块退出的时候会自动调用res.close()方法
优点
- 自动关闭资源
- 不需要自己考虑资源的关闭问题
- 代码整洁度上升
注意点
- 目标资源类要实现Closeable接口
例子
使用案例1
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
//......
}
使用案例2
使用 try-catch-finally
InputStream is = null;
OutputStream os = null;
try{
//做一些操作
}catch (IOException e){
//...
}finally {
try {
if (is!=null){
is.close();
}
if (os!=null){
os.close();
}
}catch (IOException e2){
//...
}
}
使用try(){}
try(
InputStream is = new FileInputStream("...");
OutputStream os= new FileOutputStream("...")
){
//...
}catch (IOException e) {
throw new RuntimeException(e);
}
场景
编程老师在课上使用了此方法,一开始觉得眼熟,并不知道try(){}会自动关闭资源的功能,只觉得是try-catch-finally但好像有点不一样,查了之后才知道此方法真正的内部实现。
问题反馈
如果您对我的文章有何高见或者改进的建议,可以通过以下联系方式找到我,QAQ
QQ:2404000810