1. ホーム
  2. java

[解決済み] Javaにusing文はあるのか?

2022-03-12 13:28:57

質問

Javaには、hibernateでセッションを開くときに使用できるusing文がありますか?

C#では、次のようなものです。

using (var session = new Session())
{


}

そのため、オブジェクトはスコープ外に出て、自動的に閉じます。

解決方法は?

Java 7を導入 リソースブロックの自動管理 この機能は、Javaプラットフォームに導入されました。以前のバージョンのJavaには、この機能らしきものはありませんでした。 using .

を実装した任意の変数を、例として使用することができます。 java.lang.AutoCloseable を次のように記述します。

try(ClassImplementingAutoCloseable obj = new ClassImplementingAutoCloseable())
{
    ...
}

Java の java.io.Closeable インターフェースは、ストリームによって実装され、自動的に AutoCloseable というように、すでにストリームを try ブロックの中で使用するのと同じように、C#の using ブロックを作成します。これは、C#の using .

現在 バージョン 5.0 では、Hibernate セッションに AutoCloseable で、ARMブロックの中で自動クローズすることができます。以前のバージョンの Hibernate では セッションは AutoCloseable . そのため、この機能を使用するには、Hibernate >= 5.0である必要があります。