lambda表达式总结
lambda介绍
匿名:没有一个确定的名称
函数:lambda不属于一个特定的类,但是却有参数列表、函数主体、返回类型、异常列表
传递:可以作为参数传递给方法、或者存储在变量中
简洁:不需要写很多模板代码
使用范例以及例子
//使用匿名内部类:
public class mytest {
public static void main(String[] args) {
Mylike mylike = new Mylike() {
@Override
public void like() {
System.out.println("i like you");
}
};
mylike.like();
}
}
interface Mylike{
void like();
}
//使用Lambda表达式:
public class mytest {
public static void main(String[] args) {
Mylike mylike = (int a)-> {
System.out.println("i like you--"+a);
};
mylike.like(520);
}
}
interface Mylike{
void like(int a);
}
Lambda表达式基础语法
关于箭头操作符:
Java8中引入了一个新的操作符,"->",该操作符称为箭头操作符或者Lambda操作符,箭头操作符将Lambda表达式拆分成两部分;
左侧: Lambda表达式的参数列表,对应的是接口中抽象方法的参数列表;
右侧: Lambda表达式中所需要执行的功能(Lambda体),对应的是对抽象方法的实现;(函数式接口(只能有一个抽象方法))
Lambda表达式的实质是对接口的实现。
上述例子进行简化:
//1.简化参数类型
Mylike mylike = (a)->{
System.out.println("i like you--"+a);
};
mylike.like(520);
//2.简化括号
Mylike mylike = a->{
System.out.println("i like you--"+a);
};
mylike.like(520);
//3.简化花括号
Mylike mylike = a-> System.out.println("i like you--"+a);
mylike.like(520);
//4.多个参数示例
Mylike mylike = (a,b)->{
System.out.println("i like you--"+a+"--like--"+b);
System.out.println("i like you--"+a+"--like--"+b);
};
mylike.like(520,502);
总结:
1.lambda表达式只能有一行代码的情况下才能简化为一行,如果有多行,那么就用代码块包裹
2.前提是接口为函数式接口(只能有一个抽象方法)
3.多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号
写在最后:欢迎大家交流改进,转载请注明出处。