Rol*_*all 1 java resources try-catch
只是确认以下内容不能编译,这不是我的错误:
try(Files.newBufferedWriter(Paths.get("/home/user/Desktop/TryItOutMan.txt"), Charset.defaultCharset())
{
}
catch(IOException io){io.printStackTrace();}
Run Code Online (Sandbox Code Playgroud)
但是以下编译:
try(BufferedWriter bw =Files.newBufferedWriter(Paths.get("/home/user/Desktop/TryItOutMan.txt"), Charset.defaultCharset())
{
}
catch(IOException io){io.printStackTrace();}
Run Code Online (Sandbox Code Playgroud)
似乎编译器检查try-catch-with-resources语句中声明的类是否实现AutoClosable...但是它可能有效,因为该方法返回了一个BufferedWriter实现的方法AutoClosable.
只是要求确认
try(Files.newBufferedWriter(Paths.get("/ home/user/Desktop/TryItOutMan.txt"),Charset.defaultCharset())
不编译.
提前致谢.
如果你看一下JLS中 try-with-resources的语法定义,你会发现它需要一个变量名.所以它必须看起来像:
try (SomeType variable = xxx;)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |