便宜上、インターフェイスを使用して、オブジェクトをさらにAutoCloseable
使用する前にファイナライズする必要があるオブジェクトを処理したいと考えています。
唯一の問題は、try-with-resources
ブロックがそれ自体であるということです。つまり、通常、AutoCloseable
インスタンスへの参照を取得するには、次のようにする必要があります。
MyCloseable mc;
try (MyCloseable m = mc = new MyCloseable()) {
m.doSomeStuff();
}
System.out.println(mc.getValue1());
System.out.println(mc.getValue2());
// ... and so on
ここでこの構造:
MyCloseable mc;
try (MyCloseable m = mc = new MyCloseable()) {
やや乱雑に見えます。したがって、私の質問は設計上の問題に関するものです。try-w-r
Javaアーキテクトが次のようなブロックの使用を想定していなかった理由は何なのか疑問に思います。
MyCloseable mc = new MyCloseable();
try (mc) { ... }
上で説明したように、私はそれを使用すべきではないのでしょうか?それを行うのが良い習慣である場合は?
編集なぜ私の質問がJavaのtry-with-resourceで宣言が必要なのかと異なる理由を説明するように求められました
説明は非常に簡単です。理由を尋ねているのではありません。、しかし:それを行うのは良い習慣ですか?