在Java 9中对try-with-resources语句进行了改进。如果我们已经有一个最终的或等同于最终变量的资源,那么我们可以在try-with-resources语句中使用该变量,而不必在try-with-resources语句中声明一个新变量。
我们可以在try块中声明多个资源 。Try初始化块可以具有任意数量的资源,从而导致空资源或非空资源。
在下面的示例中,我们可以在try-with-resources语句中声明多个资源。
import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; public class MultipleResourcesTest { public static void main(String args[]) throws IOException { System.out.println(readData("test")); } static String readData(String message) throws IOException { try(Reader inputString = new StringReader(message); BufferedReader br = new BufferedReader(inputString)) { return br.readLine(); } } }
输出结果
test
主要内容:Java SE 7:Try-With-Resources基础知识,Java SE 7:Try-With-Resources规则,Java SE 9:Try-With-Resources改进在这篇文章中,我们将讨论Java SE 9中的一些改进语句。现在让我们开始学习这个构造。 Java SE 7:Try-With-Resources基础知识 Java SE 7引入了一个新的构造: 语句,用于更好的异常处理。 如果没有这个构造,开发人员必须编写大量冗余和难看的代码。 如果开发人员忘记正确
下面的try with resources语句是来自Java文档的示例 根据文件, 用资源尝试语句确保每个资源在语句末尾关闭。 我的问题是,为什么我需要在try关键字之后立即在括号内声明资源。(如上面的BuffereReader) BufferReader实现了java。lang.AutoCloseable 所以为什么不支持这样的事情, 一旦退出尝试,就隐式关闭资源对象。(正如它所实现的自动关闭)
问题内容: 我想知道将 return 语句放在 try-with-resources 块中是否会阻止资源自动关闭。 如果我这样写, 连接 会关闭吗?在Oracle文档中指出: try-with-resources语句可确保在语句末尾关闭每个资源。 如果由于return语句而从未到达该语句的末尾,该怎么办? 问题答案: 根据Oracle的教程,“无论try语句正常完成还是突然完成,[[资源]都将关闭
在此Java程序示例中: 当在静态方法example()的正文中抛出OutOfMemoryError错误时,在终止静态方法example()之前,连接“con”和语句“stmt”是否会自动关闭,尽管没有任何“cat”捕获这些错误,因此在main()的其余代码中,是否确定这两个对象已关闭? 谢谢
本文向大家介绍如何在JDK 9中更简洁使用 try-with-resources 语句,包括了如何在JDK 9中更简洁使用 try-with-resources 语句的使用技巧和注意事项,需要的朋友参考一下 在 JDK 7 之前,资源需要手动关闭 例如下面一个很常见的文件操作的例子: 在 JDK 7 之前,你一定要牢记在 finally 中执行 close 以释放资源 JDK 7 中的 try-w
问题内容: 如何使用Java 7的自动资源管理(try-with- resources语句)集成创建/接收连接,查询数据库以及可能处理结果的通用JDBC习惯?(教程) 在Java 7之前,通常的模式是这样的: 使用Java 7,您可以: 这将关闭和,但是回滚又如何呢?我无法添加包含回滚的catch子句,因为该连接仅在try块内可用。 您是否还在try块之外定义连接?这里的最佳实践是什么,特别是如果