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/