java8lambda表达式初识
一、函数式接口
只有一个 抽象方法 的 接口 叫函数式接口
/**
* @auther hhh
* @date 2018/12/24 22:20
* @description 函数式接口:只有 一个 抽象方法 的接口叫函数式接口
* default、static、Object中的方法除外,其他的抽象方法
*/
@FunctionalInterface//注解:java8提供的,只能标注在函数式接口之上,如果这个类不是一个函数式接口,就会报错
public interface UserMapper {
int insert();//只有一个insert()的接口是函数式接口,他就一个抽象方法
default int update() {//不是函数式接口
return 1;
}
static int delete() {//不是函数式接口
return 1;
}
//Object中的方法都不是函数式接口(与Object中一样的方法),例如:
public int hashCode();
/**
* jdk1.8之前的一些函数式接口
* 1、java.lang.Runable
* 2、java.util.Comparator
* 3、java.util.concurrent.Callable
*/
}
二、java8中最重要的函数式接口
java8将函数式接口存放在 External Libraries->rt.jar->java->util->function包中,以下函数式接口是非常重要的。
Supplier<T> 代表一个输出
Consumer<T> 代表一个输入(一个消费)
BiConsumer<T, U> 代表两个输入
Function<T, R> 代表一个输入一个输出,T 是输入 R 是输出(输入输出是不同类型)
UnaryOperator<T> extends Function<T, T> 继承 Function,但是没有添加方法,只是将输入输出变成同一种T类型(输入输出是同种类型)
BiFunction<T, U, R> 代表两个输入一个输出(一般是输入和输出是不同类型的)
BinaryOperator<T> extends BiFunction<T,T,T> 代表两个输入一个输出(输入和输出的类型是一致的,类型都是 T )
一般有Bi的代表两个的意思
总结:学习lambda表达式,最重要的是泛型与函数式接口
java8lambda表达式初识的更多相关文章
- java8---lambda表达式
语法糖 lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块).Lambda表 ...
- Java8Lambda表达式
“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个 ...
- Java基础一篇过(六)Java8--lambda表达式
一.简介 lambda表达式是Java8的一个重要特性,也可以称为闭包,常用于配合Java8的Stream对集合元素进行操作,使得代码更简介紧凑. 二.代码解析 虽说lambda表达式是一个新的特性, ...
- lambda表达式初识
简单来说,一般提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. 而匿名函数就是没有名字的函数,有时函数只是临时一用,而且它的业务逻辑也相 ...
- Java 中的函数式编程(Functional Programming):Lambda 初识
Java 8 发布带来的一个主要特性就是对函数式编程的支持. 而 Lambda 表达式就是一个新的并且很重要的一个概念. 它提供了一个简单并且很简洁的编码方式. 首先从几个简单的 Lambda 表达式 ...
- python基础之协程函数、列表表达式、生成器表达式
一.协程函数 协程函数的定义?如果在一个函数内部yield的使用方式是表达式形式的话,如x=yield,那么该函数称为协程函数 协程函数补充: def init(func): def wrapper( ...
- Python之旅Day1 数据类型初识(数字|字符串|列表|数据运算) 编码 表达式(if...else|for|while)
初识PYTHON Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(吉多·范罗苏姆)于 ...
- 死磕Lambda表达式(一):初识Lambda
弱小和无知不是生存的障碍,傲慢才是.--<三体> 什么是Lambda表达式 Lambda表达式是表示可传递匿名函数的一种简洁方式,Lambda表达式没有名称,但是有参数列表.函数主体.返回 ...
- 初识Quartz(入门案例)+常用的Cron表达式
1.Quartz架构图 1.实体层 package cn.happy.entity; //1. public class Plan { //时间 private String date; //任务 p ...
随机推荐
- Oracle DG 三种模式(转)
DG有下面三种模式– Maximum protection– Maximum availability– Maximum performance 在Maximum protection下, 可以保证从 ...
- IEEP-网络规划
HCNP-R&S证书是公认人具备中小型企业网络构建和管理能力的专业人士 IEEP包含五个方面内容 1.网络规划与设计 2.网络实施与维护 3.网络排障 4.网络优化 5.网络割接 ...
- 极点五笔词库DIY
2004年没啥好的拼音输入法,试了清华紫光输入法一段时间,也相当不满意, 于是在2005年开始学五笔,很快就选定极点五笔了, 使用过程中没啥不满意的,反而还有惊喜: 重装系统后,双击就安装好输入法了, ...
- gitlab 邮件服务器配置
一.修改 /etc/gitlab/gitlab.rb 文件,添加邮件服务器信息 SMTP settings 例如163 邮件服务器 external_url 'http://你的IP地址或域名' ## ...
- Full scan vs index 执行计划的实验
根据Oracle-L邮件列表里主题「 Full scan vs index 」的讨论而来. 1.测试环境创建 SYS@HEMESRHTDB2(1.206)> select * from v$ve ...
- listview加载显示图片
public class ImageAndTextListAdapter extends ArrayAdapter<ImageAndText> { private ListView lis ...
- MySQL:数据库入门篇1
1,什么是数据库?——存储数据的仓库 数据库技术是计算机应用领域中非常重要的技术,它产生于20世纪60年代末,是数据管理的最新技术,也是软件技术的一个重要分支. 简单的说,数据库就是一个存放数据的仓库 ...
- 【转】eclipse 错误信息 "File Search" has encounter a problem 解决
在eclipse中使用搜索功能,发生错误: "File Search" has encounter a problem 仔细看了一下自动跳出的错误日志(Error Log),发现: ...
- (转)HTML5之渐变
<!DOCTYPE> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta h ...
- linux c做服务端使用多线程接收图片并且将图片写入数据库
#include<sys/socket.h> #include<sys/types.h> #include<sys/stat.h>//包含文件的全部结构,属性 #i ...