gpt4 book ai didi

运行程序时出现java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-12-03 05:52:19 30 4
gpt4 key购买 nike

我有 4 节课。一种是抽象实体类,一种是球类,一种是主类,一种是屏幕类。

ball 类扩展了实体类,有 5 个变量。

屏幕函数有一个paint方法:

public void paint(Graphics g){
super.paint(g);
ball.paint(g);
}

当然,要使用 ball.paint 需要为其创建一个对象。所以,我制作了球对象:

Ball ball;

然后将其添加到屏幕构造函数中,因为我需要(Ball 有一个需要 5 个变量的构造函数):

public Screen(){
ball = new Ball(ball.getWeight(), ball.getWidth(), ball.getHeight(), ball.getX(), ball.getX());
}

这没有错误,但是当我运行该程序时,我在控制台中收到此错误:

Exception in thread "main" java.lang.NullPointerException
at h3x.engine.gfx.Screen.<init>(Screen.java:18)
at h3x.engine.Main.main(Main.java:16)

主类的第16行是这样的:

frame.add(new Screen());

...屏幕类的第 18 行是这样的:

ball = new Ball(ball.getWeight(), ball.getWidth(), ball.getHeight(), ball.getX(), ball.getX());

所以我的问题是,为什么会发生这种情况,以及如何解决它。如果需要,我可以将整个代码放入类中。

谢谢!

最佳答案

您调用:

ball = new Ball(ball.getXxx()....)

这意味着您希望从初始化的实例中检索值。并且在初始化完成之前,它是null。因此出现了 NPE(NullPointerException 的缩写)。

关于运行程序时出现java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989504/

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