How to return an arraylist from a method
I need help. For this specific method. I am trying to get it to return an arraylist that I tokenized.
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;
}
What am I doing wrong?!
At the very end you are doing return tokens
but that variable was defined INSIDE the try block, so it is not accessible outside of it. You should add:
ArrayList<String> tokens = new ArrayList<String>();
to the top of your method, just under the BufferedReader.
Try returning ArrayList which is the more appropriate return type in this case. Generic types aren't related to each other the way your example seems to be using them.
It is probably an error in your main method somewhere. Are you instantiating the class and calling the method read() on it?
Try this:
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;
}}
精彩评论