gpt4 book ai didi

Java NullPointerException 问题

转载 作者:行者123 更新时间:2023-11-29 03:17:12 24 4
gpt4 key购买 nike

所以,我很确定我做的一切都是正确的,但是当我运行我的程序时,它给了我这个日志:

Exception in thread "main" java.lang.NullPointerException
at com.BLANK.handler.ButtonHandler.<init>(ButtonHandler.java:19)
at com.BLANK.BLANKScreen.<init>(BLANKScreen.java:28)
at com.BLANK.BLANKWindow.<init>(BLANKWindow.java:28)
at com.BLANK.BLANKWindow.main(BLANKWindow.java:11)

这是在 ButtonHandler 类中给我错误的代码:

public Button button;

public int buttonX = button.x;
public int buttonY = button.y;
public int buttonSizeX = button.xSize;
public int buttonSizeY = button.ySize;

这是它所指的按钮整数:

public int x;
public int y;
public int xSize;
public int ySize;

public Button(int x, int y, int xSize, int ySize, String s, Graphics g) {
this.x = x;
this.y = y;
this.xSize = xSize;
this.ySize = ySize;
}

有人知道我做错了什么以及我该如何解决吗?

附言如果您需要更多代码片段,请告诉我,我会提供。

最佳答案

问题

当你声明这个时:

public Button button;

public int buttonX = button.x;

您正在创建和初始化类的字段:

  • button没有任何初始化,所以默认为null
  • buttonX 应该分配给 button.x,但是这个表达式试图获取一个 null 对象的字段,这导致NPE(这个异常就是这个意思)

解决方案

直接的解决方案是在声明其他字段之前初始化button。但据我所知,您宁愿不使用字段来“存储”button.x。在需要的地方直接使用 button.x

关于Java NullPointerException 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25829281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com