处理静态和非静态变量

时间:2019-05-14 08:13:13

标签: java arraylist static non-static

我试图重写一些代码,以学习和理解它。我和以前一样,但是现在遇到了一些问题。

List<NewClass> list = new ArrayList<NewClass>();

public static void main(String[] args) {
    try {
        File file = new File("c://data//uzemanyag.txt");
        Scanner szkenner = new Scanner(file, "UTF8");

        while (szkenner.hasNext()){
            String line = szkenner.nextLine();
            String [] c = line.split(";");
            NewClass newclass = new NewClass(Integer.valueOf(c[1]), Integer.valueOf(c[2]));
            list.add(newclass);
        }


    }
    catch (Exception e)  {
        e.printStackTrace();
    }

}

该错误在“ list.add(newclass)”行中,但是我不知道为什么,因为我已经写了这部分。 这是我的另一个有效的代码:

    List<Valtozas> lista = new ArrayList<Valtozas>();

    try {
        File fajl = new File("c://data//uzemanyag.txt");
        Scanner szkenner = new Scanner(fajl, "UTF8");

        while (szkenner.hasNext()) {
            String sor = szkenner.nextLine();
            String [] darabok = sor.split(";");
            String szoveg = darabok[0];
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
            LocalDate ld = LocalDate.parse(darabok[0], formatter);
            //System.out.println("ld: "+ ld);
            Valtozas valtozas = new Valtozas(ld,Integer.parseInt(darabok[1]),Integer.parseInt(darabok[2]));
            lista.add(valtozas);
        }

唯一的区别是,这里我使用Date变量,但是现在我只想保存2个数字,其中包含txt文件。

1 个答案:

答案 0 :(得分:2)

您不能从静态内容访问非静态变量。您可以声明列表为静态

static List<NewClass> list = new ArrayList<NewClass>();

,然后您的程序应进行编译。