嗨,这里有几行代码。
UserAccountVO fun() {
// ...
ObjectInputStream in = xstream.createObjectInputStream(is);
return (UserAccountVO)in.readObject();
}
现在给出如下警告:
有谁能解释一下吗?leaked_resource: 中的变量超出作用域时会泄漏它所引用的资源。
我是这样解决的:
try(ObjectInputStream in = xstream.createObjectInputStream(is);) {
return (UserAccountVO)in.readObject();
} catch (IOException e) {
s_logger.error(e.getMessage());
return null;
}
在前一种情况下,您没有关闭资源' In ',这可能导致内存泄漏。因此你会得到一个警告。而在以后的情况下,您已经将'in'实例化放入TRY块中,这实际上为您添加了一个隐式的'finally'来关闭资源。