Я изучаю некоторый Java-код, написанный моим бывшим коллегой, и нашел то, что не могу правильно понять.
Здесь у нас есть метод getGeneAvailableTaxonomies (), который, кажется, содержит вызов метода с собственным объявлением accept ().
Это правда? Возможно ли это?
Вот часть кода: я не могу понять значение программы от FilenameFilter () до конца.
public List<Integer> getGeneAvailableTaxonomies() {
List<Integer> availableTaxon = new ArrayList<Integer>();
File dataDirectory = new File(_currentApplicationPath, String.format("Data"));
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith("gene_") && name.endsWith("_info.info"); //get all info files...
}
};
String[] children = dataDirectory.list(filter);
for(String child:children) {
availableTaxon.add(Integer.parseInt(child.substring(child.indexOf("_")+1, child.lastIndexOf("_"))));
}
return availableTaxon;
}