访问布尔Java时出现NullPointerException

访问布尔Java时出现NullPointerException,java,Java,我有一个布尔值,它检查是否要执行某个操作,布尔值正在通过setter和getter访问,我有其他布尔值正在以类似的方式访问,他们没有给我任何错误,除了这个,起初,我在一个单独的线程中的一段代码中检查它,该部分在不产生异常的情况下无法工作,所以我将其放入一个toggleButton中,只是对其进行简单的读写,然后出现了nullPointerException,这是我的代码,我已经对其进行了注释 toggleButton.setOnMousePressed(new EventHandler<M

我有一个布尔值,它检查是否要执行某个操作,布尔值正在通过setter和getter访问,我有其他布尔值正在以类似的方式访问,他们没有给我任何错误,除了这个,起初,我在一个单独的线程中的一段代码中检查它,该部分在不产生异常的情况下无法工作,所以我将其放入一个toggleButton中,只是对其进行简单的读写,然后出现了nullPointerException,这是我的代码,我已经对其进行了注释

toggleButton.setOnMousePressed(new EventHandler<MouseEvent>() {
        @Override public void handle(MouseEvent event) {
         //this part is executing perfectly
         //meaning my toggleButton is ok
         System.out.println("Toggle Button Clicked");

         //this is where I am getting the NullPointerException
         if(!getblackAndWhite()){

            setblackAndWhite(true);

         }else{

              setblackAndWhite(false);

          }
        }});


private void setblackAndWhite(Boolean blackAndWhite)

{
    this.blackAndWhite = blackAndWhite;
}

private Boolean getblackAndWhite()
{
    return this.blackAndWhite;
}
然后blackAndWhite为空,为默认值。当你声明它时初始化它,假设你想以false开头,看起来像

private Boolean blackAndWhite = false;
或者在getblackAndWhite中检查null。像

然后blackAndWhite为空,为默认值。当你声明它时初始化它,假设你想以false开头,看起来像

private Boolean blackAndWhite = false;
或者在getblackAndWhite中检查null。像


如果您没有在构造函数中设置blackAndWhite的值,并且在设置之前调用getblackAndWhite,您将得到一个空指针异常NPE

如果您没有在构造函数中设置blackAndWhite的值,并且在设置之前调用getblackAndWhite,那么您将得到一个空指针异常NPE

布尔值对象它是否已初始化?

布尔值是一个对象。它是初始化的吗?

你能把stackstraceadd Black and White的声明贴出来吗!布尔还是布尔?答案是肯定的thanks@WendieLamero那你应该。你能把斯塔克斯特拉德·布莱克和怀特的声明贴出来吗!布尔还是布尔?答案是肯定的thanks@WendieLamero那么你应该::D你不会说:D我想我跳过了书中关于布尔值应该初始化的那部分,我认为这是一个简单的数据类型,或者说使用了一个基本的布尔值类型而不是包装器类型。该基元的默认值为false,因此如果忘记初始化,则默认值为false,可以避免NPE。@WendieLamero boolean是基元类型,作为实例变量,它的默认值为false。Boolean是一种引用类型,它的默认值作为一个实例变量为null。:D你不会说:D我想我跳过了书中关于Boolean应该初始化的那部分,我认为这是一种简单的数据类型,或者更改为使用一个基本的Boolean类型,而不是包装器类型。该基元的默认值为false,因此如果忘记初始化,则默认值为false,可以避免NPE。@WendieLamero boolean是基元类型,作为实例变量,它的默认值为false。Boolean是引用类型,作为实例变量,它的默认值为null。