java - 我的 get 方法不会显示 arraylist 值

标签 java

我是 java 和 stackOverflow 的新手,所以如果我没有发布有关我的问题的所有必要信息,请耐心等待。基本上,我试图从 .txt 文件中读取行并将它们存储在堆栈中。我还需要在不同的类中访问这个堆栈。所以我创建了一个 get 方法,但它总是返回 null。请帮忙!

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import java.util.Stack;

public class Hints {

    private Stack stack;
    private File f;
    private String line;
    private Scanner scanner;

    public Hints(){          
        f = new File("hints.txt");
        stack = new Stack();    
    }

    public void getList() throws FileNotFoundException, IOException {

        scanner = new Scanner(f);

        while(scanner.hasNextLine()) {
            line = scanner.nextLine();
            stack.add(line); 
        }
        scanner.close();
    }

    public Stack getStack(){
        return stack;
    }

}

当我尝试使用简单的 System.out.print 打印堆栈时,它将显示为 null。我的问题在哪里? 谢谢。

最佳答案

你的代码工作正常。我认为在调用 getStack() 方法之前您没有调用 getList() 方法。

try {
        Hints hints = new Hints();
        hints.getList();        // adds to the stack
        Stack s = hints.getStack();  // return the stack
        int stackSize = s.size();

        for (int i = 0; i < stackSize; i++) {

            System.out.println(s.pop());        // pop from the stack
        }
    } catch (IOException ex) {
        Logger.getLogger(JavaApplication18.class.getName()).log(Level.SEVERE, null, ex);
    }

在调用 getStack() 方法之前,必须先调用 getList() 方法。因为 getList() 方法添加从 txt 文件读取的值。然后只有您可以调用 getStack() 方法。否则堆栈中没有任何值。

关于java - 我的 get 方法不会显示 arraylist 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28536683/

相关文章:

java - 计算比率

java - 如何在java中进行批量http调用

java - 英雄库 : spring boot acces to endpoints with https only

java - 在 JSF 页面中以段落形式列出 Iterate

java - 如果可能的话,是否有一种工具可以使所有类包都 protected 和最终?

java - 如何在连接 JPA/Ebean 上定义多个条件

java - Jackson - 在序列化为 json 期间将空集合视为 null

java - 最近的 Nifty GUI 初始化

java - 以尽可能少的线程初始化 JVM

java - 给定多边形的坐标求长度