处理静态和非静态变量

Dealing with static and non-static variables

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

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 文件。

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

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

然后你的程序应该可以编译了。