JDK8特性 内置函数式接口 Predicate

@Test
public void predicateTest() {
    // 接受一个T类型参数,判断合法性,返回boolean
    Predicate<String> predicate = (String username) -> {
        return "user".equals(username);
    };

    System.out.println(predicate.test("user"));
    System.out.println(predicate.test("admin"));
}

@Test
public void consumerTest() {

    // 接受1个T类型参数,没有返回值
    Consumer<String> consumer = (String message) -> {
        System.out.println("正在发送消息 " + message + "...");
        System.out.println("发送成功");
    };

    consumer.accept("hello,world!");
}

@Test
public void functionTest() {

    // 接受一个T参数,返回一个U类型
    Function<String, Integer> function = (String numberStr) -> {
        return Integer.valueOf(numberStr);
    };

    System.out.println(function.apply("100"));
}

@Test
public void supplierTest() {
    // 不接受参数,返回一个T类型参数
    Supplier<Integer> supplier = () -> {
        return new Random().nextInt(100);
    };
    System.out.println(supplier.get());
    System.out.println(supplier.get());
    System.out.println(supplier.get());
}

@Test
public void unaryOperatorTest() {

    // 接受T类型的参数并修改后返回 
    UnaryOperator<String> unaryOperator = (String content) -> {
        content = content + " has updated";
        return content;
    };

    System.out.println(unaryOperator.apply("Hello"));;
}

@Test
public void binaryOperatorTest() {

    // 接受两个T类型参数,返回一个T类型参数
    BinaryOperator<String> binaryOperator = (String prefix, String suffix) -> {
        return prefix + " " +suffix;
    };
    System.out.println(binaryOperator.apply("hello", "world"));
}

猜你喜欢

转载自www.cnblogs.com/esrevinud/p/12729527.html
今日推荐