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