zoukankan      html  css  js  c++  java
  • java8新特性-lambda(系统内建函数式接口)

    1.java类型系统内建函数式接口

    (1) java.lang.Runnable

    (2) java.lang.Comparable

    (3) java.lang.Comparator

    (4) java.io.FileFilter

    (5) more....

    (6) java.util.function.Predicate<T>

         接收参数对象为T,返回一个boolean类型结果

      Predicate<String> predicate = (String username) -> {
        return "admin".equals(username);
      };
      System.out.println(predicate.test("admin")); 

    (7) java.util.function.Customer<T>

         接收参数为T,不返回结果

        Consumer<String> consumer = (String message) -> {
            System.out.println("要发送的消息:" + message);
            System.out.println("消息发送完成");
        };
        consumer.accept("hello world");    
    

    (8) java.util.function.Function<T, R>

     接收参数对象为T,返回结果类型为R

        Function<String, Integer> function = (String gender) -> {
            return "manger".equals(gender) ? 1 : 0;
        };
        System.out.println(function.apply("manger"));
    

    (9) java.util.function.Supplier<T> 

     不接收参数,提供T对象的创建工厂

      Supplier<String> supplier = () -> {
        return UUID.randomUUID().toString();
      };
      System.out.println(supplier.get());

    (10) java.util.function.UnaryOperator<T>

     接收参数对象T,返回参数对象T

        UnaryOperator<String> unaryOperator = (String img) -> {
            return img + "[100 * 200]";
        };
        System.out.println(unaryOperator.apply("kk"));
    

    (11) java.util.function.BinaryOperator<T>

     接收两个T对象,返回一个T对象结果

        BinaryOperator<String> binaryOperator = (String a, String b) -> {
            return a + b;
        };
        System.out.println(binaryOperator.apply("a", "b"));
    

      

    总结:java.util.function提供了大量的函数式接口

    Predicate:接收参数对象为T,返回一个boolean类型结果

    Customer:接收参数为T,不返回结果

    Function:接收参数对象为T,返回结果类型为R

    Supplier:不接收参数,提供T对象的创建工厂

    UnaryOperator:接收参数对象T,返回参数对象T

    BinaryOperator:接收两个T对象,返回一个T对象结果

  • 相关阅读:
    算法设计--从后向前处理
    野指针的危害究竟在哪里?
    printf参数的问题
    C++运算符详解问题详解
    java Clone 的心得记录
    拜占庭将军问题
    Java中的private protected public和default的区别
    Mybatis 学习笔记1 不整合Spring的方式使用mybatis
    Mybatis 使用maven插件mybatis-generator自动生成entities和SQL和mapper
    Mybatis 复习 Mybatis 配置 Mybatis项目结构
  • 原文地址:https://www.cnblogs.com/freeht/p/13029194.html
Copyright © 2011-2022 走看看