当前位置:网站首页>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"));
}
}
边栏推荐
- C language implements sequential stack and chain queue
- Used to import the data type
- [GO]、数组与切片
- Unity Gobang Game Design and Simple AI(3)
- JMeter test - JMeter 】 【 upload multiple images/batch CSV file upload pictures interface parametric method
- 【R语言】把文件夹下的所有文件提取到特定文件夹
- Fe3O4/SiO2 Composite Magnetic Nanoparticles Aminated on SiO2-NH2/Fe3O4 Surface (Qiyue Reagent)
- Deep Learning - Principles of Neural Networks 2
- S7-200SMART PLC Modbus TCP communication
- Ferric oxide/bismuth sulfide nanocomposites ([email protected]@BSABiS nanoparticles) | dendrimer-stabilized bismuth sulfide nanop
猜你喜欢
Import the pycharm environment package into another environment
工控设备的系统如何进行加固
pycharm环境包导入到另外一个环境
推进产教融合 赋能教育创新发展 | 华云数据荣获“企业贡献奖”
How to find package information and pin definitions for NXP S32K1xx series microcontrollers
Cysteine/Galactose/Perylenediimide Functionalized Fe3O4 Fe3O4 Nanomaterials | Scientific Research Reagents
Adds, deletes, searches, and changes the leading doubly circular linked list (implemented in C language)
Inception V3 闭眼检测
报错jinja2.exceptions.UndefinedError: ‘form‘ is undefined
Xilinx Zynq ZynqMP DNA
随机推荐
【Wwise】ArgumentException: The specified path is not of a legal form (empty). About the path reading error in WwiseGlobal
[R language] interaction test data
声母-字母查询工具-词语缩写查询在线工具
pycharm环境包导入到另外一个环境
el-table缓存数据
Initials-Letter Query Tool-Word Abbreviation Query Online Tool
中英文说明书丨CalBioreagents 山羊抗人白蛋白,IgG组分
Deep Learning - Principles of Neural Networks 2
[MySQL]二、进程的关系、MySQL密码破解、建表和建库相关命令
Data center project preliminary summary
工控设备的系统如何进行加固
Can Jincang Database Set Transaction Automatic Commit?
像天才一样思考:如何培养自己的创造力?
Import the pycharm environment package into another environment
Bismuth sulfide nanorods with CT imaging function | Bismuth sulfide-zinc protoporphyrin composites (PAMAM/Bi2S3 composite nanoparticles)
BeautifulSoup4的介绍与使用
Use of PlantUML plugin in idea
【Wwise】ArgumentException: The specified path is not of a legal form (empty).关于WwiseGlobal中的路径读取错误问题
zip压缩包密码解密
Online tool for sorting multi-line strings