Java的lambda写法一直不太理解,今天终于弄明白了,我们一步步来看
使用lambda函数的都是函数式编程,函数一般只用一次
一般的写法
package com.coderwar;
public class lambdaTest{
public static void main(String[] args) {
// 一般调用
Like like = new Like();
like2.lambda();
Like like = new Like();
like.lambda();
}
}
// 定义函数式,定义接口
interface Ilike {
void lambda();
}
// 实现接口
class Like implements Ilike {
@Override
public void lambda(int a, int b) {
}
}
将代码写到内部类中
package com.coderwar;
public class lambdaTest{
public static void main(String[] args) {
static class Like implements Ilike {
@Override
public void lambda() {
System.out.println("I like one");
}
}
// 内部类调用
Like like = new Like();
like.lambda();
}
}
// 定义函数式,定义接口
interface Ilike {
void lambda();
}
将代码写成匿名类调用
package com.coderwar;
public class lambdaTest{
public static void main(String[] args) {
static class Like implements Ilike {
@Override
public void lambda() {
System.out.println("I like one");
}
}
// 匿名类调用
Ilike ilike=new Ilike(){
@override
public void lambda(){
System.out.println("我是匿名调用")
}
};
like.lambda();
}
}
// 定义函数式,定义接口
interface Ilike {
void lambda();
}
Lambda调用
package com.coderwar;
public class lambdaTest{
public static void main(String[] args) {
// lambda调用
Ilike ilike=()->System.out.println("I like one");
like.lambda();
}
}
// 定义函数式,定义接口
interface Ilike {
void lambda();
}
以上四步是推论的整个过程,其本质是将函数式编程简写成一句话,将定义的接口实现方法,一句话替换,假如接口定义的方法带上参数,在定义的lambda函数中,加上参数即可