java8 interface_Java8新特性:函数式接口@FunctionalInterface使用说明
我们常用的一些接口Callable,Runnable,Comparator等在JDK8中都添加了@FunctionalInterface 注解:
通过JDK8 源码javadoc,可以知道@FunctionalInterface有以下特点:
1.该注解只能标记在"有且仅有一个抽象方法"的接口上,表示函数式接口。
2.JDK8接口中的静态方法和默认方法,都不算是抽象方法。
3.接口默认继承 java.lang.Object,所以如果接口显示声明覆盖了Object中的方法,那么也不算抽象方法。
4.该注解不是必须的,如果一个接口符合"函数式编程"定义,那么加不加该注解都没有影响。加上该注解能够 更好地让编译器进行检查,如果编写的不是函数式接口,但是加上了@FunctionalInterface 那么编译器会报错。
下面接口可以单做一函数式接口:
package com.simple.java8features;
/**
* Created with IntelliJ IDEA.
*
* @author: zhubo
* @description:
* @time: 2018年08月05日
* @modifytime:
*/
@FunctionalInterface
public interface AnnoInterface {
// 抽象方法
public void method();
// java.lang.Object中的方法不是抽象方法
public boolean equals(Object obj);
// default不是抽象方法
public default void defaultMethod() {
}
// static 不是抽象方法
public static void staticMethod() {
}
}
java8 interface_Java8新特性:函数式接口@FunctionalInterface使用说明相关推荐
- 学习笔记之-java8的新特性-函数式接口,lambda表达式,方法引用,Stream API,Optional类
1.Lambda表达式 用匿名内部类的方法去创建多线程1.new Thread2.参数传递new Runnable3.重写run方法4.在run方法中去设置线程任务5.调用start问题:我们最终目标 ...
- java8新特性_乐字节-Java8新特性-函数式接口
上一篇小乐带大家学过 Java8新特性-Lambda表达式,那什么时候可以使用Lambda?通常Lambda表达式是用在函数式接口上使用的.从Java8开始引入了函数式接口,其说明比较简单:函数式接口 ...
- JDK8中的新特性——函数式接口
JDK8 简介 概述 Java 8由Oracle从2014年3月18日发布,此版本是自Java 5(发布于2004年)之后的一个重量级版本,也是java发展史上的一个里程碑式的版本.这个版本在JVM. ...
- java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function
文章目录 函数式接口 概念 函数式接口作为方法参数 函数式接口作为方法的返回值 常用函数式接口 Supplier接口 常用函数式接口 Consumer 函数式接口之 Predicate接口 常用接口之 ...
- JDK8新特性:函数式接口@FunctionalInterface的使用说明
我们常用的一些接口Callable.Runnable.Comparator等在JDK8中都添加了@FunctionalInterface注解. 通过JDK8源码javadoc,可以知道这个注解有以下特 ...
- JAVA8的新特性之函数式接口
JAVA8的新特性之函数式接口 1.Lambda表达式使用的前提,就是接口必须是一个函数式接口 2.定义 在接口中,只有一个抽象方法 3.检查是否是函数式接口用的注解 @FunctionalInter ...
- java8:新特性及Lamber表达式语法及四大函数接口
java8:新特性及Lamber表达式 如果左侧只有一个参数可以省略括号,如果右侧只有一个表达式可以省略括号 如果左侧有一个参数也可以添加括号,可以不写参数类型,有类型推断 如果右侧有返回值,一个表达 ...
- 对于Java8的新特性,应该了解(掌握)的哪些
Java8的新特性 一.Lambda表达式 基本的使用方式 Lambda表达式的使用:6种情况 语法格式一:无参,无返回值 语法格式二:Lambda表达式需要一个参数,但是没有返回值 语法格式三:数据 ...
- 深圳Java培训学习:Java8.0新特性之Lambda表达式--【千锋】
深圳Java培训学习:Java8.0新特性之Lambda表达式–[千锋] 前言 Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.本篇文章,主要给大家介绍的是lambda表 ...
最新文章
- 真香!20张图揭开「队列」的迷雾,一目了然
- [转]获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- 开篇第一章简要IOT技术栈分析
- 使用Nginx+Lua(OpenResty)开发高性能Web应用
- 如何制作自己的静态库
- 阿里云服务器ECS选型
- AndroidStudio_开发工具的设置_代码编辑器使用_新特性---Android原生开发工作笔记73
- 机器学习与计算机视觉(数据集的选择)
- python程序员月薪-据说做Python程序员,都月薪上万?
- java “lambda expressions not supported at this language level“
- 蓝桥杯.奇妙的数字(暴力)
- Java基础面试题(2022最新版汇总)
- matlab保存pdf图片太大,matlab中的图片保存方法精选.pdf
- execute和submit的区别
- 阿里巴巴CTO行癫:阿里双11是世界互联网技术的超级工程
- 孩子立刻就不玩游戏了,因为他找到更好玩的东西!
- 冻成鸡爪了,冬天的鱼儿狡猾的干活
- 生存战争2.2联机版游戏介绍
- 利用JS事件让你更加愉快地划水
- Servlet--转发和重定向