在我的应用程序中,我使用 session 工厂创建一个 session 。 当我执行此检查时,FindBug 会向我显示一条警告:“sessionFactory 为 null 保证被取消引用”。怎么解决这个问题?
if (!sessionFactory.isClosed()) {
session.close();
sessionFactory.close();
}
最佳答案
整个代码可能看起来像这样
SessionFactory sessionFactory = null;
Session session = null;
try{
do some stuff
catch(Exception e){
} finally {
if (!sessionFactory.isClosed()) {
session.close();
sessionFactory.close();
}
}
Findbugs 发现您的变量一开始就为 null,如果您的 try block 中存在异常,则变量可能尚未初始化。因此它给出了一个错误。 通过添加空检查很容易解决:
if (sessionFactory!= null && !sessionFactory.isClosed()) {
if(session != null){
session.close();
}
sessionFactory.close();
}
关于java - findbugs 显示 sessionFactory 为 null 保证被取消引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25643327/