网站首页 > 技术文章 正文
public class LambdaDemo {
public static void main(String[] args) {
/**
* 用来判定true或者false boolean test(T t);
*/
Predicate<String> predicate = str->"abc".equals(str);
System.out.println(predicate.test("abc")); //true
/**
* 消费者 接收参数的函数式接口 无返回值 有入参 void accept(T t);
*/
Consumer<SysUser> consumer = sysUser ->{
System.out.println(sysUser.getLoginName());
};
SysUser sysUser = new SysUser();
sysUser.setLoginName("张三");
consumer.accept(sysUser); //"张三"
/**
* 生产者 产生返回值的函数式接口 有返回值 无入参 T get();
*/
Supplier<SysUser> supplier =() ->{
SysUser sysUser1 = new SysUser();
sysUser1.setLoginName("李四");
return sysUser1;
};
System.out.println(supplier.get().getLoginName());//"李四"
/**
* 有入参 有出参 R apply(T t); 将T转化成R 对于接口中的参数 就是SysUser转化成String 入参是<>中第一个 出参是第二个
*/
Function<SysUser,String> function = (sysUser2)->{return sysUser2.getLoginName();};
SysUser sysUser2 = new SysUser();
sysUser2.setLoginName("function 张三");
System.out.println(function.apply(sysUser2));
}
}
猜你喜欢
- 2024-11-16 3.1 Python高级编程-函数式编程工具
- 2024-11-16 面向对象编程的一些思考(面向对象编程的理解)
- 2024-11-16 知识总结-Java8 Stream函数式编程
- 2024-11-16 bind、call、apply 区别?如何实现一个bind?
- 2024-11-16 Javascript基础重拾笔记之手写apply、call
- 2024-11-16 java 8新特性 常用内置函数式接口
- 2024-11-16 7、JavaScript 内置的常用对象有哪些?该对象常用的方法(必会)
- 2024-11-16 Java中“::”是什么含义(java中+是什么)
- 2024-11-16 Java 8 中的 Function:让代码从繁琐到简洁的魔法工具
- 2024-11-16 13万字详细分析JDK中Stream的实现原理(中)
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-