当前位置: 首页 > 面试题库 >

Eclipse建议使用Null Pointer异常,尽管我相信我已经初始化了我的对象

强金鑫
2023-03-14
问题内容

如标题所述,我有NPE错误。它发生在线:

while (getWidth() > bowl.getX()+10) {

如果删除它,则表明它发生在下一行:

bowl.move(10.0, 0);

我得出的结论是,eclipse看不到我的“碗”已初始化。为什么?“新GOval”不解决这个问题吗?我在这里的一个线程中看到一种解决方案是将声明和初始化拆分为不同的行,但是我认为这不太可能是主要解决方案(此外,它对我的​​情况没有帮助)码?

该代码应创建一个圆,将其放在屏幕的左上角,然后在单击鼠标按钮后移动该圆。圆已成功绘制,但是单击后会显示NPE消息。

import acm.program.*;
import acm.graphics.*;
import java.awt.event.*;

public class animation extends GraphicsProgram {

public void init() {
    GOval bowl = new GOval(10,10);
    add(bowl);
    addMouseListeners();
}


public void mouseClicked(MouseEvent e) {
        while (getWidth() > bowl.getX()+10) {
        bowl.move(10.0, 0);
        pause(50);
    }
}

private GOval bowl; 
}

问题答案:

该行:

GOval bowl = new GOval(10,10);

正在声明一个新的GOval,并隐藏底部定义的全局GOval。

该行应该是:

bowl = new GOval(10,10);


 类似资料:
  • 问题内容: 我有一个简单的log4j.property文件和一个使用log4j的简单程序。但是当我运行罐子时,我只会看到 这是我使用记录器的方法: 这是我的pom.xml的一部分 这是我的log4j.properties 现在从我的项目目录运行jar文件。这是我的项目目录 问题答案: 将log4j.properties文件放在src / main / resources中,以便将其捆绑到您的JAR

  • 问题内容: 我想像这样使用Self in init参数: 我知道我可以在这里使用“ A”,但是我想实现这一点,如果某个类从A继承,那么它的初始化器将知道操作是它的类类型,而不仅仅是A。所以例如,如果我这样写: 然后,我可以使用: 这可能吗? 问题答案: 不必使用或在每个初始化器中使用,您可以简单地重写每个子类的初始化器以使用其自己的类型为。 之所以起作用,是因为的初始值设定项声明的类型应符合,并且

  • 我使用pip在ubuntu上安装了locustio 问题是每次我在控制台上运行任何蝗虫命令(例如) 控制台返回这个 任何解决方案?

  • 当我尝试运行Spring Boot应用程序时,出现了这个错误 就我所知,我的代码如下,我有一个bean: 我做错了什么?

  • 我在java代码中使用有组织的BST。这个函数/方法应该搜索树中具有特定值的节点,并让用户知道它是否存在。 问题在于结尾的else语句。我的编译器说,else语句中的任何内容都是死代码,这意味着它没有被使用。但是,如果函数确实遇到null并且无法找到具有指定值的节点,我需要else语句中的代码。如果我将第二条else语句更改为

  • 让我们考虑一下这段代码: 抛出MyException时,对象初始化是如何完成的?这样地: 或者像这样(所以没有初始化): 我认为使用了第一种行为,比如语句,但是关于这一点的官方文档在哪里?