以下がコンパイルされないことを確認するだけで、それは私の間違いではありません:
try(Files.newBufferedWriter(Paths.get("/home/user/Desktop/TryItOutMan.txt"), Charset.defaultCharset())
{
}
catch(IOException io){io.printStackTrace();}
ただし、次のようにコンパイルされます。
try(BufferedWriter bw =Files.newBufferedWriter(Paths.get("/home/user/Desktop/TryItOutMan.txt"), Charset.defaultCharset())
{
}
catch(IOException io){io.printStackTrace();}
コンパイラは、try-catch-with-resources ステートメントで宣言されたクラスが実装されているかどうかをチェックしているようですが、メソッドが実装AutoClosable
する a を返すため、機能していた可能性があります。BufferedWriter
AutoClosable
という確認を求めるだけで
try(Files.newBufferedWriter(Paths.get("/home/user/Desktop/TryItOutMan.txt"), Charset.defaultCharset())
コンパイルしません。
前もって感謝します。