函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
函数式接口可以被隐式转换为 lambda 表达式。
昨天突然在看java8源码时候,发现
Comparator接口有两个抽象方法,一个是compare,另一个是equals方法;这与函数式接口定义有冲突,因为在调用用lambda表达式调用Comparator接口中都是实现了compare方法,并没有实现equals,而equals是Object中的方法,所用的类都继承Object类,所以equals继承了Object中是实现,所以函数式接口(Functional Interface)就是一个有且仅有一个(除和Object中方法有相同签名的外)抽象方法,但是可以有多个非抽象方法的接口。

根据这个一理解 我定义了一个函数式接口 里面只有一个toString()
此代码会报错,因为toString()是Object中方法:
@FunctionalInterface
public interface MyInterface {
String toString();
}

如果再定义一个myMethod抽象方法,程序就不会报错了!

@FunctionalInterface
public interface MyInterface {
String toString();
String myMethod();
}

Java 8 函数式接口就是一个有且仅有一个(除和Object中方法有相同签名的外)抽象方法相关推荐

  1. 学习 Java 8 - 函数式接口 Lambda

    学习 Java 8 - 函数式接口 Java 8 引入了函数式接口的概念.函数式接口其实就是只包含一个抽象方法的普通 Java 接口.在没有引入函数式接口之前,我们通常使用内部类和匿名类来实现类似的功 ...

  2. 高级JAVA - 利用函数式接口实现通用的取并集/交集/差集进阶版

    在前文(高级JAVA - 利用函数式接口实现通用的取并集/交集/差集)中我们实现了利用函数式接口获取交集/差集 , 但是只能全部生成 , 假如我们只需要一个交集的话 , 所有代码仍然会执行一次 . 比 ...

  3. java 常用 函数式接口_「java8系列」神奇的函数式接口

    前言 在上一篇Lambda的讲解中我们就提到过函数式接口,比如:Consumer consumer = (s) -> System.out.println(s);其中Consumer就是一个函数 ...

  4. Java之函数式接口(FunctionalInterface)

    Java之函数式接口(FunctionalInterface) 1. FunctionalInterface是什么? FunctionalInterface 中文称之为 函数式接口.是Java新特性之 ...

  5. Java:Java 8 函数式接口FunctionalInterface

    文档 https://www.runoob.com/java/java8-functional-interfaces.html 定义函数式接口 package com.github.mouday.de ...

  6. Java进阶—函数式接口

    一.函数式接口 函数式接口在Java中是指:有且仅有一个抽象方法的接口,接口中可以包含其他的方法(默认,静态,私有) 函数式接口,即适用于函数式编程场景的接口.而Java中的函数式编程体现就是Lamb ...

  7. Java四大函数式接口

    Java8函数式接口 1. Consumer<T> 消费型接口 2. Supplier <R> 供给型接口 3. Function<T, R> 函数型接口 4. P ...

  8. 【Java】函数式接口与Lambda表达式

    函数式接口--@FunctionalInterface Code @FunctionalInterface interface IService {void say(String message); ...

  9. java 8 函数式接口_必看:通俗易懂地告诉你什么是java8中的“函数式接口”

    花10分钟认真的看完一篇文章,或许会有意想不到的收获 java8发布已经好几年了,相信很多小伙伴都使用过java8,java8这版本带来了很多新特性,其中一个就是"函数式接口",今 ...

最新文章

  1. 置换 ---- 两个置换最少swap次数 E. Permutation Shift
  2. 云主机和物理机PK图
  3. 中国大陆穷光蛋排行榜---转
  4. 同样是程序员,优秀的程序员能够月入5万甚至50万!,一般的程序员却只能月入5千甚至更低?那么他们差别在哪里呢?
  5. 从零开始Vue项目实战(二)-搭建环境
  6. linux环境OpenRASP使用教程,OpenRASP技术分析
  7. iphone备忘录突然没了_苹果突然下架12 天猫:双11有惊喜!iPhone12 mini配色缩水
  8. 一行代码打印python之禅
  9. [CF1137E]Train Car Selection[维护凸壳]
  10. 杨辉三角形c语言程序
  11. 新科LoRa网关和LoRa节点
  12. 群体智能优化算法之总结
  13. 罗比机器人说明书_罗比_机器人人物_我要机器人
  14. Eclipse 下Struts 2.1.6+ 和spring 2.5.5 整合
  15. 台式计算机文件打不开怎么回事,电脑打不开文件是怎么回事 电脑打不开文件是什么原因...
  16. matlab成功安装libsvm后,运行程序仍报错“svmtrain has been removed”解决方法记录
  17. You-Get,多网站视频下载工具,非常方便
  18. 望尽天涯路--从理财角度看高可用
  19. android swf webview,android webview播放swf文件
  20. AS179-92LF射频开关芯片

热门文章

  1. summernote富文本编辑器
  2. app注册页面php开发,教你用app()函数注册程序(微信程序开发)
  3. ABAQUS软件实训(三):Mesh模块之圆形平面网格划分技巧
  4. r5 5600u和i5 1135G7哪个更强
  5. r5 5600u和r7 5800u差距多大 r55600u和r75800u对比哪个好
  6. mysql mrr icp_mysql mrr
  7. 初级基础练习:酒店管理系统的房间号定位:不用for循环.
  8. 电脑自带投屏工具的使用
  9. BERT详解——原理篇(组会PPT,其中大量参考李宏毅的bert课程视频)
  10. 迈莱芯MLX90640修改设备地址方法,I2C挂载多个MLX90640