2013年5月16日 星期四

Java 7 Try-with-Resource

最近的Refactoring Project真是令人發悶,由於 Upgrade Project 是包含了 Java 5-->Java 7 的Update, 我可以測試一下 Java 7 的 try with Resource.
Try-With-Resource 是指 Java 在 嘗試 Initialize Resource 的時候的動作:
1. Object Initialized successful -> Close the resource
 2. Object Initialized failed -> Close the resource

 Java 7: static String readFirstLineFromFile(String path) throws IOException
{ try (BufferedReader br = new BufferedReader(new FileReader(path)))
{ return br.readLine(); } }

 Before Java 7: static String readFirstLineFromFileWithFinallyBlock(String path) throws IOException
{ BufferedReader br = new BufferedReader(new FileReader(path));
 try { return br.readLine(); }
 finally { if (br != null) br.close(); } }

 比較一下,大家可以發現沒有Try-with-Resource 沒有了 finally 關上 BufferedReader 的 Coding.
 Resource 只需要 implements AutoCloseable, 便可以以使用 這種 syntactic sugar 了.

 其實這種 Syntax , 在 C# 一早便已存在(Using())

沒有留言:

張貼留言