JUC并发编程学习(十一)四大函数式接口(必备)
  nhcdqcXv3MQ1 2023年11月06日 69 0

四大函数式接口(必备)

程序员:泛型、反射、注解、枚举

新时代程序员:lambda表达式、链式编程、函数式接口、Stream流式计算

函数式接口:只有一个方法的接口

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}

//@FunctionalInterface 函数式接口,超级多
//简化编程模型,在新版本的框架中大量应用!
//foreach(消费者类的函数式接口)

四大函数式接口:Consumer、Function、Predicate、Supplier

Function

  • Function 函数式接口 R apply(T t); 输入一个T类型的参数,返回一个R类型的值
  • 只要是函数式接口都可以用lambda表达式简化

简化前:

Function ft = new Function<String,String>() {
    @Override
    public String apply(String str) {
        return str;
    }
};

简化后:

Function ft = (str)->{return str;};

更加简化后:

Function ft = str->{return str;};

Predicate

  • Predicate 断定型接口 有一个输入参数,返回类型只能是boolean值

  • 同样是一个函数式接口,可以简化

    简化前:

    Predicate<String> pr = new Predicate<String>() {
        @Override
        public boolean test(String str) {
            return str.isEmpty();
        }
    };
    

    简化后:

    Predicate<String> pr = str ->{return str.isEmpty();};
    

Comsumer

  • Comsumer 消费者接口 有一个输入参数,没有返回值
  • 同样可以简化

简化前:

Consumer<String> stringConsumer = new Consumer<>() {
    @Override
    public void accept(String s) {
        System.out.println(s);
    }
};

简化后:

Consumer<String> stringConsumer = str ->{
    System.out.println(str);
};

Supplier

  • Supplier 供给者接口 没有参数只有一个返回值
  • 同样可以简化

简化前:

Supplier<String> stringSupplier = new Supplier<>() {
    @Override
    public String get() {
        return "我的世界";
    }
};

简化后:

Supplier<String> stringSupplier = ()->{return "我的世界";};
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   55   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   114   0   0 Java
  8s1LUHPryisj   2024年05月17日   49   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
nhcdqcXv3MQ1