代码对比
✕ Java 8
Connection conn = getConnection();
// Must re-declare in try
try (Connection c = conn) {
use(c);
}
✓ Java 9+
Connection conn = getConnection();
// Use existing variable directly
try (conn) {
use(conn);
}
发现此代码有问题? 告诉我们。
为什么现代方式更好
无重新声明
直接使用现有变量名。
更少代码
消除冗余的本地变量声明。
更清晰
try 块中更少的变量混淆作用域。
旧方式
重新声明变量
现代方式
实际上 final
自 JDK
9
难度
入门
JDK 支持
try-with-resources 改进
可用
自 JDK 9 起广泛可用(2017 年 9 月)
工作原理
Java 9 允许在 try-with-resources 中直接使用实际上 final 的变量,无需重新声明新变量。当资源在 try 块之外创建时,这减少了冗余。
相关文档