gpt4 book ai didi

java - try-with-resource资源创建的执行顺序

转载 作者:行者123 更新时间:2023-12-05 09:22:07 25 4
gpt4 key购买 nike

我有一个 try-with-resource block ,它从 Blob 对象创建 ObjectInputStream 的新实例,例如

try(ObjectInputStream mObjectStream = new ObjectInputStream(mblob.getBinaryStream()))
{
...
}

但是,如果在 .getBinaryStream() 处抛出异常,则 mObjectStream 对象可能未释放,这是我的应用程序担心的问题。

我考虑过将其拆分如下

try(InputStream mStream = mblob.getBinaryStream(); ObjectInputStream mObjectStream = new ObjectInputStream(mStream){
...

}

如果首先创建 mObjectStream 是否会导致问题,或者在这种情况下总是首先创建 mStream

最佳答案

try(InputStream mStream = mblob.getBinaryStream();
ObjectInputStream mObjectStream = new ObjectInputStream(mStream))

当您列出并打开多个资源时,它们将按照声明的顺序创建。即首先创建 mStream,然后是 mObjectStream。

此外,它们将以相反的顺序关闭。最新的将首先关闭,然后是旧的。

关于java - try-with-resource资源创建的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28561181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com