gpt4 book ai didi

Java 从不同的类调用方法

转载 作者:行者123 更新时间:2023-11-29 10:16:04 25 4
gpt4 key购买 nike

我正在做一些非常基本的编码,试图从不同的类调用方法,但出于某种原因,每当我尝试从任何不同的类调用任何方法时,我都会收到空指针异常。我想我已经正确地创建了类的实例,但我不确定。如果有人能向我解释出了什么问题,我将不胜感激。

这是调用的类:

 public class Menu extends JPanel implements ActionListener{

Skeleton skeleton;
Board board;

public Menu(){

setBackground(Color.BLACK);

JButton button = new JButton("hello");
button.addActionListener(this);
this.add(button);
}

public JPanel getPanel(){
return this;
}

@Override
public void actionPerformed(ActionEvent e) {
board.boardTest();
}
}

这是包含方法的类

public class Board extends JPanel{

public Board(){
setBackground(Color.WHITE);
}

public JPanel getPanel(){
return this;
}

public void boardTest(){
System.out.print("hello");
}
}

如您所见,无论何时用户单击按钮,它都应该打印出“hello”。

最佳答案

当您尝试调用 board.boardTest() 时,您的代码看起来应该抛出 NullPointerException (NPE),因为您在将 Board 对象分配给 board 变量之前进行调用,并且因此正在对空变量进行方法调用。

您必须先创建一个 Board 实例,然后才能尝试使用 Board 变量 board。即,

Board board = new Board();

注意 1:对于以后类似的问题,您将希望向我们展示异常文本,并在您的代码中通过注释指出哪些行抛出异常。即,

@Override
public void actionPerformed(ActionEvent e) {
board.boardTest(); // **** A NullPOinterException is thrown here ****
}

注意 2:这个问题不是特定于 Swing 的,而是一个基本的 Java 问题——在您首先为它分配一个有效对象之前,您不能使用引用变量。

关于Java 从不同的类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17776763/

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