【发布时间】:2018-12-09 04:42:34
【问题描述】:
当我使用 System.out.println 静态方法时,下面的我的 Java 程序会显示 ArrayList 中的所有元素。但是,当我在方法中返回列表时,它只显示 ArrayList 中的一个元素。我会感谢一些关于做错的方向:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileProcessor {
static List<String> theList = null;
/**
*
* @return List
*/
public static List<String> processFiles() {
try {
File f = new File("/Data/fileDump");
String[] listOfFiles = f.list();
for(String eachFile: listOfFiles) {
if(eachFile.startsWith("hawk") == true) {
theList = new ArrayList<>();
theList.add(eachFile);
return theList;
}
}
} catch(Exception e) {
e.printStackTrace();
}
return theList;
}
public static void main(String[]args) {
List<String> dataList = FileProcessor.processFiles();
for(String strg: dataList) {
if(strg != null) {
System.out.println(strg);
}
}
}
}
【问题讨论】:
-
欢迎来到 Stackoverflow。请仔细阅读"how to ask a good question",然后返回您的帖子,以便您对其进行一些编辑:代码到处都是,这是一种很好的形式,可以确保不仅有足够的细节,而且还提供格式良好的代码。跨度>
-
您在循环内创建一个列表,向其中添加一个元素,然后返回它。你能明白为什么它是一个单元素列表吗?