ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java8新特性-函数式接口

2021-07-01 18:32:21  阅读:142  来源: 互联网

标签:函数 接口 java8 length 方法 o2 o1


函数式接口
消费型接口 Consumer<T> void accept(T t);
供给型接口 Supplier<T> T get();
函数型接口 Function<T> R apply(T t);
断定型接口 Predicate<T> boolean test(T t);

只定义【一个抽象方法】的接口
    只能有一个抽象方法
    可以有静态方法和默认方法,因为这两种方法都是已经实现的了
    可以包含Object里所有能重写的方法,因为即使接口包含像String toString()这样的抽象方法,它的实现类也会因继承了Object类,而再次对接口中的toString()方法进行实现。
注:哪怕有很多默认方法,只要接口只定义了一个抽象方法,它就仍然是一个函数式接口。

1)函数式接口的作用
方便直接用Lambda表达式构造出实例,让代码更加简洁
Lambda表达式允许你直接以内联的形式为函数式接口的抽象方法提供实现,并把整个表达式作为函数式接口的实例。
你用匿名内部类也可以完成同样的事情,只不过比较笨拙。
Comparator<String> c = new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return o2.length()-o1.length();
        }
    };
//函数式编程 : 参数+返回值
    Comparator<String> d = (o1,o2)->o2.length()-o1.length();

 

标签:函数,接口,java8,length,方法,o2,o1
来源: https://www.cnblogs.com/yxj808/p/14960150.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有