如何从方法返回数组列表
Posted
技术标签:
【中文标题】如何从方法返回数组列表【英文标题】:How to return an arraylist from a method 【发布时间】:2011-04-14 11:12:45 【问题描述】:我需要帮助。对于这个特定的方法。我试图让它返回一个我标记化的数组列表。
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;
我做错了什么?!
【问题讨论】:
作为注释,一般来说,返回 List 而不是 ArrayList 被认为是一种好的做法,以防您在某些时候需要更改实现。 【参考方案1】:最后,您正在执行return tokens
,但该变量是在 try 块内部定义的,因此无法在其外部访问。您应该添加:
ArrayList<String> tokens = new ArrayList<String>();
到方法的顶部,就在 BufferedReader 下方。
【讨论】:
线程“main”中的异常 java.lang.NoSuchMethodError: main Press any key to continue 。 . . @Luron - 这是一个完全不同的问题,这意味着您没有在类中指定public static void main(String[] args)
方法。这是 JVM 要求的【参考方案2】:
尝试返回 ArrayList,这是在这种情况下更合适的返回类型。泛型类型与您的示例似乎使用它们的方式并不相关。
【讨论】:
【参考方案3】:这可能是您的 main 方法中的某个错误。您是在实例化该类并在其上调用方法 read() 吗?
【讨论】:
【参考方案4】:试试这个:
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;
【讨论】:
以上是关于如何从方法返回数组列表的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate SQLQuery 列表方法返回对象而不是对象数组
使用 Spring MVC 从 Jquery ajax 方法返回字符串数组