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

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 问题是每次我在控制台上运行任何蝗虫命令(例如) 控制台返回这个 任何解决方案?

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

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

  • 我是Java的新手,正在尝试解决初学者在给定数之后寻找下一个素数的问题。下面是我提出的解决方案的两个版本。对于第一个版本,编译器要求我包含第二个return语句(即return 0;)在findNextNumber方法的末尾,我已经在代码中包含了一个return语句,而第二个版本没有要求我包含一个额外的return语句。有人能告诉我为什么会这样吗?提前感谢您的帮助!