gpt4 book ai didi

java - 如何定义用户类以避免 NullPointerException?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:06 27 4
gpt4 key购买 nike

我是一名 JAVA 新手,曾试图找到答案,但一直苦苦挣扎,因为我真的不知道如何使用正确的术语,而且用 Java 编写的数量巨大。因此,如果某处有引用资料可以解释我的问题,但我找不到它,我会提前致歉。

我有一个关于在 JAVA GUI 中定义用户类的问题。我想编写一个使用我的对象的 GUI,其中定义了这些对象,它们基本上包含一些数字,即先前对该对象执行的操作的结果。

但是,在尝试实现这一目标的过程中,我将问题细化为试图理解如何在一个地方定义类并在另一个地方对它们采取行动。

例如……

public class Form extends javax.swing.JFrame {

/**
* Creates new form Form
*/
public TheOtherClass otherClass;

public Form() {

TheOtherClass otherClass = new TheOtherClass();

}
}

我认为,如果您将类声明为实例变量,然后在构造函数中将其实例化,则对象将在窗体存在时“存在”。但是,当我尝试在其他任何地方使用该对象时,我得到一个 NullPointerException

我认为这是因为虽然对象是在类级别声明的,但它是在构造函数中创建的,并在构造函数代码完成时被销毁。这是正确的吗?

当我这样做时,它起作用了......

public class Form extends javax.swing.JFrame {

/**
* Creates new form Form
*/
TheOtherClass otherClass = new TheOtherClass();

public Form() { }
}

这样可以吗?有更好或更喜欢的方法吗?有人可以指导我找到可能有帮助的引用资料或教程吗?

干杯

最佳答案

这两种方法都可以,具体取决于您的具体示例。但是,当您这样做时,您并没有设置类的成员变量:

public Form() {
TheOtherClass otherClass = new TheOtherClass();
}

您正在创建一个同名的变量。将其更改为:

public Form() {
this.otherClass = new TheOtherClass();
}

关于java - 如何定义用户类以避免 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39770119/

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