我正试图将下面的代码从Gauva谓词转换为java谓词,但不知道如何应用或,而不是java谓词的函数到下面的方法
import java.util.function.Predicate;
class Test {
private Predicate<String> getPath() {
return or(
PathSelectors.ant("/v1/*/s1/**"),
PathSelectors.ant("/v1/*/s2/**"),
and(PathSelectors.ant("/v/*/test/*/s3/*")),
not(PathSelectors.ant("/v1/*/test/*/s4/*"))),
PathSelectors.ant("/v1/*/test/*/s5/*/*"),
PathSelectors.ant("/v1/*/test/*/s5/*/*"),
);
}
}
Predicate
有and
、or
和negate
方法,但and和or只接受一个其他谓词。您仍然可以像这样使用这些方法:
PathSelectors.ant("/v1/*/s1/**")
.or(PathSelectors.ant("/v1/*/s2/**")
.or(PathSelectors.ant("/v/*/test/*/s3/*").and(PathSelectors.ant("/v1/*/test/*/s4/*").negate()))
.or(PathSelectors.ant("/v1/*/test/*/s5/*/*")
.or(PathSelectors.ant("/v1/*/test/*/s5/*/*");