从布尔值中避免NullPointerException

时间:2014-08-12 09:36:02

标签: java android exception nullpointerexception

我试图避免布尔值的NullPointerException。我认为下面的代码会起作用,但事实并非如此。

if(Boolean.TRUE.equals(shareConnection.getConnection())){ // This could be null, True or False

}

任何想法?我不想实现try catch语句,因为它已经在catch中。

修改

public class ShareConnection{

    public boolean getConnection() {
        return connection;
    }
}

3 个答案:

答案 0 :(得分:5)

if(Boolean.TRUE.equals(shareConnection.getConnection()))

NPE的唯一途径是

  • shareConnectionnull
  • getConnection()
  • 中有一个NPE

使用调试器在此处分析您的程序状态和/或发布更多代码以获得更具体的帮助。

答案 1 :(得分:1)

这里有一些可读性问题也会让你的生活变得更加艰难。 1)比较两个布尔(不可否认的是一个包装和一个原始)

shareConnection.getConnection()

已经返回一个布尔值。 无需将此布尔值与Boolean.TRUE进行比较,并在if中使用此布尔值。 只需使用:

if(shareConnection.getConnection())

2)为你的方法命名

方法名称

getConnection()

让我相信,当我打电话给它时,我会得到(某种)连接。 相反,我得到真或假。 这就好像我问你要锤子一样,你说"是的"。

3)NullPointer异常 正如先前的答案已经指出的那样,NPE很可能是由

引起的
shareConnection

确保在调用此对象上的方法之前初始化它。

答案 2 :(得分:0)

使用原始布尔值而不是布尔类,这样就不能为空。