Java 9 Try-With-Resource 增强

2024 年 8 月 29 日 | 阅读 2 分钟

Java 在 Java 7 中引入了 try-with-resource 功能,该功能有助于在使用后自动关闭资源。

换句话说,我们可以说我们不需要显式地关闭资源(文件、连接、网络等),try-with-resource 会通过使用 AutoClosable 接口自动关闭它们。

在 Java 7 中,try-with-resources 有一个限制,即要求资源在其块内本地声明。

示例 Java 7 资源在资源块内声明

此代码可以与 Java 7 甚至 Java 9 一起正常执行,因为 Java 保持了其旧版本。

但是下面的程序无法与 Java 7 一起使用,因为 我们无法将资源放在 try-with-resource 之外声明。


Java 7 资源在资源块外声明

如果我们在 Java 7 中像下面的代码一样操作,编译器会生成一个错误消息。

输出

error: <identifier> expected
		   try(fileStream){

为了解决此错误,Java 9 中改进了 try-with-resource,现在我们可以使用未在本地声明的资源的引用。

在这种情况下,如果我们使用 Java 9 编译器执行上述程序,它将顺利执行,而不会出现任何编译错误。


Java 9 try-with-resource 示例

输出

File written

下一个主题匿名类