将Guava谓词转换为Java 8谓词



我正试图将下面的代码从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/*/*"),

);
}

}

Predicateandornegate方法,但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/*/*");

最新更新