当前位置:网站首页>Simple to use Lambda expressions
Simple to use Lambda expressions
2022-08-09 06:28:00 【hey hei hei hei】
Lambda表达式
语法
() -> {}
() are the parentheses of the interface method,如果有参数,也需要写参数.只有一个参数时,括号可以省略.
-> split left and right
{} 要实现的方法体,只有一行代码时,可以不加
概念
使用于lambdaThe interface for the expression is called函数型接口,A functional interface is simply an interface with abstract methods.
基本语法
interface Test1Service{
void sayMsg(String msg);
}
public class Test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test1Service ts = msg -> System.out.println("test"+msg);
ts.sayMsg("hello");
}
}
注意事项
- java8为函数式接口引入了一个新注解**@FunctionalInterface**,该注解主要用于编译级错误检查
- The interface contains two abstract methods,It violates the definition of functional interface,IDE会直接报错
- can be included in functional interfaces默认方法,因为默认方法不是抽象方法,其有一个默认实现,所以是符合函数式接口的定义的
- can be included in functional interfaces静态方法,因为静态方法不能是抽象方法,是一个已经实现了的方法,所以是符合函数式接口的定义的
- can be included in functional interfacesObject里的public方法,因为任何一个函数式接口的实现,默认都继承了Object类,包含了来自java.lang.Object里对这些抽象方法的实现
进阶
方法引用
We want to implement a method of an interface with another methodA类似,(这里的类似是指参数类型与返回值部分相同),我们直接声明A方法即可
There are three syntaxes for method references:
- 类::静态方法名
- 类::实例方法名
- 对象::实例方法名
interface Function{
String sendMsg(Object o);
@Override
boolean equals(Object obj);
}
public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Function f = String::valueOf;
System.out.println(f.sendMsg(1));
System.out.println(f.sendMsg('c'));
}
}
构造引用
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Supplier;
class Function3 {
private int x;
private String y;
Function3(){
x = 0;
y = "hello";
}
Function3(int x){
this.x = x;
y = "hello";
}
Function3(int x,String y){
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
@Override
public String toString() {
return "Function3 [x=" + x + ", y=" + y + "]";
}
}
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//无参
Supplier<Function3> f1 = () -> new Function3();
Function3 ft1 = f1.get();
System.out.println(f1.toString());
System.out.println(ft1);
//单参
Function<Integer, Function3> f2 = x -> new Function3(x);
System.out.println(f2.apply(1));
//双参
BiFunction<Integer, String, Function3> f3 = (x,y) -> new Function3(x,y);
System.out.println(f3.apply(1, "test"));
}
}
边栏推荐
- TCP segment of a reassembled PDU
- Ferric oxide/bismuth sulfide nanocomposites ([email protected]@BSABiS nanoparticles) | dendrimer-stabilized bismuth sulfide nanop
- golang xml 处理动态属性
- Service
- db.sqlite3没有“as Data Source“解决方法
- VS2019 common shortcut keys
- Remember a nest.js route that matches all the path problems that follow
- Text String Length Sorting - Online Tool
- Inception V3 闭眼检测
- C# 利用iTextSharp画PDF
猜你喜欢
Word文件的只读模式没有密码怎么退出?
ZIP压缩包文件删除密码的方法
普罗米修斯原理及节点发布
Teach you how to make the Tanabata meteor shower in C language - elegant and timeless (detailed tutorial)
The solution that does not work and does not take effect after VScode installs ESlint
Unity Gobang Game Design and Simple AI (2)
MYSQL Advanced Chapter - Query Interception Analysis, Lock Mechanism, Master-Slave Replication
[GO], arrays and slices
Go lang1.18入门精炼教程——第一章:环境搭建
workbench 数据导出
随机推荐
数据库中间件-jdbi
How to find package information and pin definitions for NXP S32K1xx series microcontrollers
io.lettuce.core.RedisCommandTimeoutException Command timed out
Xilinx Zynq ZynqMP DNA
治疗消化性溃疡—Toronto Research Chemicals 甘氨酸铝
抗菌药物丨Toronto Research Chemicals 天冬酰胺D
中英文说明书丨TRC D-阿卓糖(D-Altrose)
VS2019常用快捷键
GNNExplainer applied to node classification task
zip压缩包密码解密
Error: flask: TypeError: 'function' object is not iterable
A test engineer with an annual salary of 35W was laid off. Personal experience: advice that you have to listen to
Online tool for sorting multi-line strings
Unity C# 委托——事件,Action,Func的作用和区别
中英文说明书丨TRC 交替醇(Catalogue NumberA575760)
GNNExplainer应用于节点分类任务
报错:flask: TypeError: ‘function‘ object is not iterable
install flask
2022.8.8DAY628
一道很简答但是没答对的SQL题