Я хотів би отримати список файлів із певним розширенням у каталозі. В API (Java 6) я бачу метод, File.listFiles(FileFilter)який би це зробив.
Оскільки мені потрібне конкретне розширення, я створив файл FileNameExtensionFilter. Однак я отримую помилку компіляції, коли використовую listFilesз цим. Я припускав, що з тих пір FileNameExtensionFilter implements FileFilterя маю змогу це зробити. Код наступний:
FileNameExtensionFilter filter = new FileNameExtensionFilter("text only","txt");
String dir = "/users/blah/dirname";
File f[] = (new File(dir)).listFiles(filter);
Останній рядок показує помилку компіляції:
метод listFiles (FileNameFilter) у типі File не застосовується для аргументів типу FileNameExtensionFilter
Я намагаюся використовувати listFiles(FileFilter), ні listFiles(FileNameFilter). Чому компілятор цього не розпізнає?
Це працює, якщо я пишу власний розширений фільтр розширення FileFilter. Я волів би скористатися, FileNameExtensionFilterніж написати своє. Що я роблю не так?