为什么我没有使用此类从CSV文件填充我的arrayList

时间:2018-02-19 20:51:22

标签: java csv arraylist filereader

我想用类填充arrayList来压缩我的main方法。所以,我想使用" list"填充我的arrayList。 class,然后在我的main中使用它来填充它。我不确定我错过了哪一部分,但这就是我在列表类中的内容:

public class list {
    List<Entry> People = new ArrayList<>(); 
        BufferedReader br = null;
    String csvFile = "employee_data.csv";
    String line = "";
    String cvsSplitBy = ",";
    public void readFromFile(){ 
        try {
            br = new BufferedReader(new FileReader(csvFile));
            while ((line = br.readLine()) != null) {
                String[] Labels = line.split(cvsSplitBy);                 
                Entry entry = new Entry(Labels[0], Labels[1], Labels[2], Labels[3], Labels[4], Labels[5], Labels[6], Labels[7]);
                People.add(entry);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

然后这是主要的,我希望填充列表打印其大小:

public static void main(String[] args) {
    System.out.print(People.size());
}

如果我通过main方法读取它,它可以正常工作。但是当我尝试将其移动到自己的类时,列表People无法解析。那是为什么?

1 个答案:

答案 0 :(得分:0)

因为People现在是类list的实例成员。要访问它,您需要先创建list

的实例
public static void main(String[] args) {
    list myList = new list();
    myList.readFromFile();
    System.out.print(myList.People.size());
}

话虽这么说,我会考虑在代码中重新编写各种各样的东西。类名应以大写字母开头,类变量应以小写字母开头。考虑通过People上的getter方法访问list,即

public class list {
    ...

    public List<Entry> getPeople() {
        return People;
    }
}

有关许多此类提示的具体信息,请参阅Google's style guide