4
我是一名.net開發人員。最近,我拿起了比較java和c#的興趣。我發現Java的使用塊的嘗試與資源相當於C#的。但是,我無法完全理解它。我知道C#的使用塊是一種語言功能,編譯器爲它生成代碼。我想獲得更多的理解嘗試,與資源和有它幾個問題:瞭解JDK 7 - 試用資源
它是類似的C#中使用塊的langauge功能?
什麼是以下等效JDK 6代碼:
try(SomeResource resource = new SomeResource()) { //Some logic }
什麼是以下等效JDK 6代碼:
try(SomeResource resource = new SomeResource()) { //Some logic } catch(SomeException ex) { }
什麼是Java相當於C#的反射器的或ILSpy工具?即反彙編Java字節代碼類文件並查看它的Java代碼的工具。
關閉。資源的初始化由catch-SomeException塊覆蓋。此外,資源關閉邏輯發生在嵌套的try-finally塊內,因此如果引發SomeException,則資源在控制到達catch-SomeException塊之前關閉。有關血淋淋的詳細信息,請參閱JLS 14.20.3.2:http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.20.3.2 – 2012-07-26 06:57:06
@GaryF:在您的代碼片段中,應該不是SomeResource的構造函數在try塊中被調用,即不應該是:try {resource = new SomeResource()} .....? – 2012-07-26 08:27:23
你們都是對的。它實際上涉及更多。我已經更新了我的答案。 – GaryF 2012-07-26 20:28:45