Java8:如何用Predicate函数替换按位包含和(&)?

时间:2017-10-27 13:28:57

标签: java function java-8

我想使用Predicate函数代替&运营商。这意味着我想要“第二次测试通过!!”在执行我的代码后打印。

我该怎么办?

public class BitwiseInclusiveAND{

    public static void main(String[] args) {
        final Predicate<String> condition1 = (Predicate<String>) (arg -> arg != null);
        final Predicate<String> condition2 = (Predicate<String>) (arg -> {
            System.out.println("Second Test is passed !!");
            return arg.equals("Hello");
        });
        Predicate<String> equalsStrings
                = condition1.and(condition2); // Here I want to execute the condition2 even if condition 1 = true 
        System.out.println(equalsStrings.test("Hello"));
    }
}

1 个答案:

答案 0 :(得分:5)

自己实现谓词:

 <target name="_deployHubstarRESTAPI" >
<artifact:mvn pom="../HubstarRESTAPI/pom.xml">
   <arg value="clean"/>
   <arg value="install" />
   <arg value="-P${build.name}" />
 </artifact:mvn>
 <copy file="../HubstarRESTAPI/target/HubstarRESTAPI-0.0.1-SNAPSHOT.war" todir="${web.hubstarrestapi.dist.dir}"/>
 <move file="${web.hubstarrestapi.dist.dir}/HubstarRESTAPI-0.0.1-SNAPSHOT.war" tofile="${web.hubstarrestapi.dist.dir}/HubstarRESTAPI.war"/>
</target>

Predicate<String> or = s -> condition1.test(s) & condition2.test(s); 替换为您可能需要的其他运算符。