У меня есть:
Path path = Paths.get("Foo.class");
Path path2 = Paths.get("Foo.java");
FileSystem fs = FileSystems.getDefault();
PathMatcher matcher = fs.getPathMatcher("glob:*.{class, java}");
matcher.matches(path); // TRUE
matcher.matches(path_2); // FALSE
Почему path2
имеет значение false, если синтаксис glob {} означает, что он соответствует .class или .java?
Из jdk документации :
*. {Java, class} Соответствует именам файлов, заканчивающимся на .java или .class