一尘不染

Java是否有using语句?

hibernate

Java是否具有在hibernate状态下打开会话时可以使用的using语句?

在C#中,它类似于:

using (var session = new Session())
{


}

因此,对象超出范围并自动关闭。


阅读 1036

收藏
2020-06-20

共1个答案

一尘不染

Java 7引入了自动资源块管理,该功能将该功能引入了Java平台。Java的早期版本没有任何相似之处using

例如,您可以使用java.lang.AutoCloseable以以下方式实现的任何变量:

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

java.io.Closeable由流实现的Java
接口自动扩展AutoCloseable,因此您可以try像在C#using块中使用流一样使用块中的流。这等效于C#的using

5.0版开始,Hibernate
Sessions实现AutoCloseable
并可以在ARM块中自动关闭。在以前的Hibernate
Session中没有实现AutoCloseable。因此,您需要使用Hibernate>
= 5.0才能使用此功能。

2020-06-20