java-SpotBugs是否报告未在此处关闭资源的误报?
作者:互联网
我有这样的代码:
public static MyObject forId(long myObjectId, Connection cxn) throws SQLException {
try (PreparedStatement stmt = cxn.prepareStatement(selectMyObjectById))) {
stmt.setLong(1, myObjectId);
try (ResultSet res = stmt.executeQuery()) {
res.next();
return MyObject.fromResultSet(res);
}
}
}
SpotBugs将其标识为JDBC语句对象的OBL_UNSATISFIED_OBLIGATION.这是假阳性吗?我的印象是,尝试资源将确保在所有情况下都能正确关闭这些资源.
解决方法:
您的ResultSet和PreparedStatement在正确声明时受到保护.
如果您的连接在相关范围内也得到了适当处理,则可以,这是误报.
标签:try-with-resources,spotbugs,java 来源: https://codeday.me/bug/20191110/2014337.html