gpt4 book ai didi

java - 将值从 arrayList 传递到对象数组时出错

转载 作者:行者123 更新时间:2023-12-02 07:59:07 24 4
gpt4 key购买 nike

package mp1similar;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
import EarthquakeRecord.Earthquakerecd;


public class MP1Similar
{

private static ArrayList arrayList ;

public static void main(String[] args)
{
ArrayList arrayList= null;
try
{
BufferedReader br = new BufferedReader(new FileReader("data/Catalog.txt"));

String line="";
arrayList =new ArrayList();
while((line = br.readLine())!=null)
{
// System.out.println(line);
StringTokenizer st = new StringTokenizer(line);
while(st.hasMoreTokens())
{
//System.out.println(st.nextToken());
arrayList.add(st.nextToken());
//System.out.println(br.readLine());
}
}
}

catch (FileNotFoundException ex)
{
System.out.println(ex.getMessage());
ex.printStackTrace();
}
catch (IOException ex)
{
System.out.println(ex.getMessage());
ex.printStackTrace();
}
int j=0;
Earthquakerecd E[]= new Earthquakerecd[2000];
for(int i=0;i< arrayList.size();i++)
{
System.out.println(arrayList.get(i));
E[j] = new Earthquakerecd();


E[j].setDate(arrayList.get(i));



if (j>35 )
{
j=0;
}
j++;

}



}

}

当我将值从 arrayList 传递到 E[j]setDate 时,出现错误。它表示 setDates 中的方法无法应用于给定类型。 aL 一个 Arraylist 的对象。我已经编辑了代码以包含所有内容。基本上它是从 TXT 文件读取数据的代码。有35列,1500多行。每列都属于某个属性,例如日期、名称等。

最佳答案

您尝试在此处对方法调用的结果使用赋值运算符:

E[j].setDate()=(aL.get(i));

我怀疑你想要:

E[j].setDate(aL.get(i));

但是,这将失败并出现 NullPointerException,因为您永远不会初始化 E[j] - 它始终是空引用。我怀疑你想要:

E[j] = new Earthquakerec();

在某个循环中。您可能还想在某个时候增加 j ...(不清楚这里的各种魔数(Magic Number)的用途 - 我怀疑您可以更清楚地编写整个代码,但它是当我们不知道它想要实现什么目标时,很难提出改进建议。)

关于java - 将值从 arrayList 传递到对象数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9166027/

24 4 0