嗨,这里有几行代码。
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;
}
答案 0 :(得分:0)
在前一种情况下,您没有关闭资源'这可能会导致内存泄漏。因此,您会收到警告。 在后来的情况下,你已经把' in' TRY块中的实例化实际上添加了一个隐含的' finally'你可以关闭资源。
希望它澄清。