gpt4 book ai didi

java - 将对象设置为 null 数组时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 19:47:31 25 4
gpt4 key购买 nike

我收到 NullPointerException,经过研究后我无法弄清楚原因。错误消息如下:

java.lang.NullPointerException
at TextDecoder.readMessagesFromFile(TextDecoder.java:32)
at TextDecoder.main(TextDecoder.java:54)

我在第 54 行和第 32 行旁边进行了评论。

这是我的构造函数(所有这些方法都来自同一个类):

  public TextDecoder() {
messages = new TextMessage[10];
msgCount = 0;
}

我的主要方法如下(我包含类声明):

public class TextDecoder {
public static void main(String[] args) throws Exception {

if (args.length != 1) {
System.out.println("There is an incorrect amount of command-line arguments. Command-line Argument length: " + args.length);
System.exit(1);
}
File msgFile = new File(args[0]);
if (msgFile == null) {
System.out.println("File not found.");
System.exit(1);
}
readMessagesFromFile(msgFile); // Line 32
}
}

我的 readMessagesFromFile 如下:

public static void readMessagesFromFile(File inputMsgFile) throws Exception {

Scanner input = new Scanner(inputMsgFile);

while (input.hasNextLine()) {

/* Some code here */
// Recipient and keyPresses are defined in here and are not null

}
messages[msgCount] = new TextMessage(recipient, keyPresses); // Line 54
msgCount++;
}
input.close();

最佳答案

public TextDecoder() {
messages = new TextMessage[10];
msgCount = 0;
}

这是一个构造函数,通过 new TextDecoder() 调用。

您不调用此函数,因此 messages 永远不会初始化。 (但无论如何,您都不应该在构造函数中设置静态字段)。

要么使 readMessagesFromFile 方法成为实例方法(删除 static;并创建一个 TextDecoder 实例来调用该方法) ;或静态初始化状态。

关于java - 将对象设置为 null 数组时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52611493/

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