1
FilenameFilter
을 호출 할 때 (익명 내부 클래스로) 전달되는 메소드가 있습니다. 이제 변수가 설정되면 FilenameFilter
을 확장하려고합니다. 예 :Java expand FilenameFilter
new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
}
이 될해야 :
new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt") || new File(dir, name).isDirectory();
}
}
어떻게 내가 처음 필터에서 필터링을 얻고 디렉토리 검사를 추가 할 수 있습니까? (나는이 메소드를 호출 할 때 디렉토리를 가지고 FilenameFilter
을 구현하고 싶지 않다. 왜냐하면 전혀 필요하지 않을 수도 있기 때문이다.)
해결책은 대답을 기반으로한다.
new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return filenameFilter.accept(dir, name) || new File(dir, name).isDirectory();
}
};
'java.io.FilenameFilter'에이 작업을 수행 할 수있는 방법이를
filenameFilter
은 메서드에 전달 된 인스턴스를 무엇입니까? 그래서 사용자는 그것을 구현하고 그것을 확장하고 내 필터 부분을 추가합니까? – XtremeBaumer예제에서 FilenameFilter1은 FilenameFilter를 구현합니다. –