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

时间:2012-02-06 19:30:27

标签: java arrays input arraylist

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行。每列都属于某个属性,如日期,名称等。

1 个答案:

答案 0 :(得分:2)

您正尝试在方法调用的结果上使用赋值运算符:

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

我怀疑你想要:

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

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

E[j] = new Earthquakerec();

在某个地方的循环中。你可能也想在某个时候增加j ...(目前还不清楚这里的各种魔术数字是什么 - 我怀疑你可以更清楚地编写整个代码,但是很难建议当我们不知道它想要实现什么时,我们会有所改进。)