我需要帮助。对于这种特定的方法。我试图让它返回我所标记的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;
}
我做错了什么?!
答案 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;
}}