gpt4 book ai didi

java - 我得到了 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 06:39:02 25 4
gpt4 key购买 nike

我将回到 Java 中的 OOP。在这里我遇到了简单示例的问题:

class CreateString {
private String name;

public CreateString(String name) {
this.name = name;
}

String string = new String(name);//AAA
}

public class Main {

public static void main(String[] args) {
CreateString myName = new CreateString("tomjas");
}
}

我从标记为“AAA”的行收到 NullPointerException。当我将第二行更改为

 private String name="";

没关系。该代码有什么问题?我认为该字段已初始化,可以从构造函数中得出结论。有任何提示和文档指示吗?

最佳答案

您的string变量是一个类属性。因此,它将在创建类实例时对其进行初始化。但此时 name 仍然为 null,因为您只在构造函数中为 name 赋值。所以你最终会得到一个 NullPointerException。

要修复此问题,请将 string = new String(name); 移动到构造函数中:

class CreateString {
private String name = null;
private String string = null;

public CreateString(String name) {
this.name = name;
string = new String(name);
}
}

由于构造函数仅在所有属性初始化后执行,因此将 private String string; 行放在何处并不重要。您也可以将它放在构造函数之后(就像您所做的那样),它仍然没问题。

关于java - 我得到了 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326830/

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