gpt4 book ai didi

java - 为什么这些数组元素在另一个类中调用时会变成 null?

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

我实例化了 Message 对象并将它们放入消息数组(收件箱)中。这是在识别类中完成的。但是,当我尝试在 Filter 类中获取这些 Message 对象时,这些对象本身变为 null,并且我无法从中得到任何结果。为什么?

以下是用于识别电子邮件的方法:

public void identifyEmail(String input1)
throws IOException, NumberFormatException,
ArrayIndexOutOfBoundsException, EmptyArrayException
{
inFile = new File(input1);
in = new Scanner(inFile);
int MESSAGE_AMOUNT = countMessage(input1);

for(int i = 0;i<MESSAGE_AMOUNT;i++){
noMoreMail = true;
emailAddress = find(input1,"From:");
if(noMoreMail){
break;
}
MIN = extractInt(find(input1,"MIN:"));
message = getMessage(input1);
target++;

ib.addMessage(MIN, emailAddress, message);
}
}

我有一个 Inbox 类来保存 Message 对象数组:

public class Inbox {

public Message[] inbox;
public int messageCount;

public Inbox(){
inbox = new Message[100];
messageCount = 0;
}

问题就出在这里。当它循环遍历 Filter 类中的电子邮件时,它只会遍历空消息。

for(int i=0; i<ib.messageCount; i++){
Message email = ib.inbox[i];
System.out.println(email.getMIN());

test1 = checkBlackList(email);
if(!test1){test2 = checkKeyword(email);}
// if spam mail is not on black list but still is spam

if(test1){updateKeywords(email);}
if(test2){addToBlackList(email);}
if(test1 || test2){
minToAdd = addToMINList(email);
}
}

谢谢!

addMessage方法

public void addMessage(int MIN, String emailAddress, String message){
if(messageCount < 100){
Message m = new Message(MIN, emailAddress, message);
inbox[messageCount] = m;
messageCount++;
} else {
increaseSize();
Message m = new Message(MIN, emailAddress, message);
inbox[messageCount] = m;
messageCount++;
}
}

最佳答案

如果您不直接填充数组的成员,则该数组只是一堆 null 值,或者基本类型的默认值。

示例

String[] strs = new String[10];
// Strs = {null, null .... null}

Object[] objs = new Object[10];
objs[0] = new Object();

// objs = {new Object(), null, null ... null}

所以你看,只需声明数组,您就不必定义它的元素。

关于java - 为什么这些数组元素在另一个类中调用时会变成 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20219984/

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