首页 > 解决方案 > ArrayList 一直给我 null

问题描述

我成功地创建了文件和公民类,但用于存储公民的 ArrayList 给了我错误。我检查了它是否已正确声明和附加,但如果我尝试在 ArrayList 数据上运行一个方法,它会在命令行中给我 null

import java.io.*;
import java.util.*;

public class SNIDApp
{

  private SNIDDb sNIDDb;
  private ArrayList<Citizen> data;

  public SNIDApp(String name, char delimiter) throws Exception
  {
    this.sNIDDb = new SNIDDb(name,delimiter);
    String[] cits;
    while(sNIDDb.hasNext())
    {
      try{
      String[] a=sNIDDb.getNext();
      System.out.println(Arrays.toString(a));
      char sex= a[0].charAt(0);
      int year=Integer.parseInt(a[1]);
      Citizen cit=new Citizen(sex,year,a[2],a[3],a[4]);
      System.out.println(cit.getName());
      data.add(cit);
      //System.out.println(data.isEmpty());
      }
      catch(Exception e){
        System.out.println(e.getMessage());
      }
    }
  }

  public ArrayList<Citizen> getData() throws Exception
  {
    return this.data;
  }
}

标签: java

解决方案


似乎您的 ArrayList 从未初始化。

利用

private ArrayList<Citizen> data = new ArrayList<>();

推荐阅读