如何从方法返回一个arraylist

时间:2010-09-20 00:45:33

标签: java methods arraylist return-value


我需要帮助。对于这种特定的方法。我试图让它返回我所标记的arraylist。

public ArrayList read (){

  BufferedReader inputStream = null;
  try {
    inputStream = new BufferedReader(new FileReader("processes1.txt"));
    String l;
    while ((l = inputStream.readLine()) != null) {

      ArrayList<String> tokens = new ArrayList<String>();

      Scanner tokenize = new Scanner(l);
      while (tokenize.hasNext()) {
        tokens.add(tokenize.next());
      }
      return tokens;
    }
  } catch(IOException ioe){
    ArrayList<String> nothing = new ArrayList<String>();
    nothing.add("error1");
    System.out.println("error");
    //return nothing;
  }
  return tokens;
}

我做错了什么?!

4 个答案:

答案 0 :(得分:10)

最后你正在做return tokens但是该变量是在try块中定义的,所以它不能在它之外访问。你应该添加:

ArrayList<String> tokens = new ArrayList<String>();

到你方法的顶部,就在BufferedReader下面。

答案 1 :(得分:0)

尝试返回ArrayList,在这种情况下,这是更合适的返回类型。通用类型与您的示例似乎使用它们的方式无关。

答案 2 :(得分:0)

在某个地方你的主要方法可能是一个错误。您是否在实例化该类并在其上调用方法read()?

答案 3 :(得分:0)

试试这个:

public ArrayList read (){

          File text = new File("processes1.txt");

              ArrayList<String> tokens = new ArrayList<String>();

              Scanner tokenize;
            try {
                tokenize = new Scanner(text);
                while (tokenize.hasNext()) {

                      tokens.add(tokenize.next());
                  }

                }

            catch(IOException ioe){
                ArrayList<String> nothing = new ArrayList<String>();
                nothing.add("error1");
                System.out.println("error");
                //return nothing;
              }
             return tokens;

    }}