На тестовом наборе файлов все проходит, пытаюсь понять, почему не проходит общая валидация.
package com.javarush.task.task31.task3111;
import java.io.IOException;
import java.nio.file.*;
import java.util.List;
/*
Продвинутый поиск файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
SearchFileVisitor searchFileVisitor = new SearchFileVisitor();
searchFileVisitor.setPartOfName("");
searchFileVisitor.setPartOfContent("UY");
searchFileVisitor.setMinSize(0);
searchFileVisitor.setMaxSize(550);
Files.walkFileTree(Paths.get("D:/temp_java/java_dir"), searchFileVisitor);
List<Path> foundFiles = searchFileVisitor.getFoundFiles();
for (Path file : foundFiles) {
System.out.println(file);
}
}
}
надо вначале проверять на 0, а потом сравнивать. как с null, надо вначале проверить что не null, а потом проверять содержимое, иначе будет NPE у тебя же && , а значит если хотя бы одно из выражений будет false, остальные даже проверяться не будут. сразу условие будет false. а проверяются они по очереди слева направо. у тебя при maxSize == 0, здесь сразу будет true, что неверно.потому что тут будет всегда trueпотому и проверяем вначале, а точно maxSize задан? если не задан то будет сразу false, и файл пойдёт проверять остальные фильтры.