try-with-resources文について


javaのtry-with-resources文についての質問です。

下記のように`try()`のカッコ外にオブジェクトを宣言した場合はコンパイルエラーとなりますか？

[code]

    MyResource obj1;
    try (obj1 = new MyResource("obj1")) {
        // 処理
    } catch (SQLException e) {
       // 例外処理
    }
    
[/code]




はい。コンパイルエラーになります。

[ドキュメント](https://docs.oracle.com/javase/jp/7/technotes/guides/language/try-
with-resources.html)にあるように、

> try-with-resources 文は、1 つ以上の **リソースを宣言する try 文です** 。

ただし、Javaの新しいバージョンでは[このページ](http://www.ne.jp/asahi/hishidama/home/tech/java/statement.html#try_with_resources_statement)にあるような書き方もできます。

