共计 752 个字符,预计需要花费 2 分钟才能阅读完成。
1.java7 中的 try
在 java7 之前, 对于一些需要使用 finally 关闭资源的操作, 会显得很臃肿.
try
{//}
catch(Exception e)
{//}
finally
{if(xxxx != null)
{xxxx.close();
}
}
在 java7 中引入了可以在 try 中直接声明需要关闭的资源的功能, 在 try 后的圆括号直接定义一个或多个资源即可.
try(var xxx = new xxx();
var xxx = new xxx();)
{//}
但是这些类都需要实现了 Closeable 或 AutoCloseable 接口, 实现其中的 close().
2.Closeable 接口
Closeable 接口是 AutoCloseable 的子接口, 其中的 close() 抛出了 IOException 异常, 实现接口时要注意抛出的异常需是 IOException 异常或 IOException 子类异常.
3.AutoCloseable 接口
AutoCloseable 接口中的 close() 抛出的异常是 Exception, 实现接口时可以抛出任何类型的异常.
java7 几乎把所有的 ” 资源类 ”(包括文件 IO 的各种类,JDBC 编程的 Connection,Statement 等接口) 进行了改写, 改写后的资源都实现了 AutoCloseable 或 Closeable 接口.(引自 << 疯狂 Java 讲义 >>( 第 5 版) P381)
4.java9 中的 try
java9 不像 java7 一样在 try 中定义资源, 只需要自动关闭的资源有 final 修饰即可. 也就是说, 可以不在 try 中声明, 在 try 前声明且使用 final 修饰即可.
final var xxx = new xxx();
final var xxx = new xxx();
try(xxx;xxx)
{//}
这是作者的 CSDN 博客地址
一起学习, 一起成长.
正文完