网站首页 > 技术文章 正文
1.lambda基本语法
(1)声明部分:就是和lambda表达式绑定的接口类型
(2)参数部分:包含一对圆括号中,和绑定的接口中的抽象方法中的参数个数和顺序相同
(3)操作符部分:->
(4)执行代码块:包含一对大括号中,出现在操作符的右侧
@FunctionalInterface 函数式接口(接口中的抽象方法中只有一个)
只有一个方法的抽象类才能使用这个注解,多个方法会报错,更好的编译
匿名内部类
new Thread(new Runnable() {
public void run() {
System.out.println("hello");
}
}).start();
Lambda
要求接口定义抽象方法只能一个
格式
()->{}
()参数列表 参数只有一个 ()可省略 参数类型可省略不写,但是要么都省略,要么都不省略
-> lambda表达式 goes to
{} 方法体 只有一条语句的时候 {}可省略
当方法体里是{retrun 10;}时 {}可省略 return也应该省略
Function(函数型) 有传入类型参数,有返回类型参数
Function function=(str)->{return str;};
System.out.println(function.apply("123456"));
Predicate(断言型)有传入类型参数返回值为boolean
Predicate<String> predicate=(t)->{
return t.isEmpty();
};
System.out.println(predicate.test("String"));
Consumer(消费者) 只有输入,没有返回
Consumer<String> consumer= (str)->{
System.out.println(str);
};
consumer.accept("1221");
Supplier(供给型)没有参数,只有返回值;
Supplier<String> supplier=()->{return "123456";};
System.out.println(supplier.get());
1.Consumer<T>
void accept(T t);//接受一个泛型类型参数无返回
2.BiConsumer<T, U>
void accept(T t, U u);//接受两个泛型类型参数无返回
3.DoubleConsumer
void accept(double value);//接收double类型,无返回
4.IntConsumer
void accept(int value);//接收int类型,无返回
5.LongConsumer
void accept(long value);//接收long类型,无返回
6.ObjDoubleConsumer<T>
void accept(T t, double value);//接收两个参数,一个泛型,一个double
7.ObjIntConsumer<T>
void accept(T t, int value);//接收两个参数,一个泛型,一个int
8.ObjLongConsumer<T>
void accept(T t, long value);//接收两个参数,一个泛型,一个long
猜你喜欢
- 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)
- 最新留言
-