gpt4 book ai didi

java - 创建类的新对象后获取 NPE

转载 作者:行者123 更新时间:2023-12-01 18:39:17 26 4
gpt4 key购买 nike

我正在尝试使用 swing 制作一个“游戏”,但遇到了一个无法解决的问题。这可能是一些简单而明显的事情,但我仍然无法弄清楚。这是我的一段代码:

public class LevelOne {

private static Crate[] crates = new Crate[3];
public LevelOne(){
crates[0].setX(200);
crates[0].setY(200);
crates[1].setX(280);
crates[1].setY(40);
crates[2].setX(440);
crates[2].setY(40);

}
//more code here
}

我尝试创建 LevelOne 类的对象以使我的 crates 变量生效。 (这是一种方法吗?)。

public static void main(String[] args) {
LevelOne l = new LevelOne();

JFrame frame = new JFrame("blabla");
Board board = new Board();
frame.add(board);
frame.setSize(805, 830);
frame.setVisible(true);
frame.setFocusable(false);
frame.setResizable(false);
frame.setDefaultCloseOperation(3);
frame.setLocation(400, 200);
board.requestFocus(true);

}

它给了我 NPE 线

LevelOne l = new LevelOne();

正如我所说,这是一个很小的项目,但我认为这可能会解决整个问题。我正在使用这个 Crate[] 箱子在我的板上绘制组件,以检查碰撞和其他内容。如果没有创建 LevelOne 类的对象,我在尝试绘制它们时仍然会得到 NPE。有什么建议、想法、解决方案吗?

最佳答案

您忘记初始化 crate 中的元素:

private static Crate[] crates = new Crate[3];        

public LevelOne(){
crates[0] = new Crate(); // <= add this
crates[0].setX(200);
crates[0].setY(200);
// same for other elements

关于java - 创建类的新对象后获取 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20593729/

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