我正在尝试学习如何编写实用程序类,但我不确定我正在尝试做的事情是否适合实用程序类。我对 java 还是很陌生,并试图从概念上理解如何以及何时做某些事情。
我有一个只有静态方法的类。而且我认为每当我的search()
方法被递归调用时,它最初拥有的数据都会丢失。我的班级是这样设置的:
public class MyClassUtil {
public static List<MyObjectData> findStuff(File path, List<String> listOfMyStuff) {
String listAsString = convertListToString(listOfMyStuff);
Pattern pattern = Pattern.compile(listAsString);
List<MyObjectData> myObjectData = search(path, pattern);
return myObjectData;
}
private static final String convertListToString(List<String> list) {
// This method converts a given list to a string. It works fine!
}
private static final List<MyObjectData> search(File directory, Pattern p) {
List<MyObjectData> dataInFile = new ArrayList<MyStringData>();
for (File file : directory.listFiles()) {
if (file.isFile()) {
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
try {
Matcher m = p.matcher(line);
boolean found = m.find();
if (found) {
dataInFile.add(new MyObjectData(m.group(2), true));
}
} catch (Exception E) {
e.printStackTrace();
}
}
br.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
if (file.isDirectory()) {
search(file, p);
}
return dataInFile;
}
}
}
我没有得到任何回报(尽管我知道应该退还一些东西)。