Java

2018-10-19 分分钟教会你使用Lambda表达式

2018-10-19  本文已影响84人  Albert陈凯

Java 中使用 Lambda表达式
Lambda的作用
Lambda表达式的作用主要是用来简化接口的创建,interface。
需要注意的是:
1.任何需要使用interface的地方都可以使用Lambda表达式来简化;
2.Lambda表达式不能够简化类或者抽象类得创建,如果试图使用Lambda表达式去创建一个类或者抽象类
将会报错如下英文信息 ”Target type of a lambda conversion must be an interface“
这就是为什么Lambda表达式只用用来简化创建接口

Java中的Interface
Lambda表达式既然是用来简化创建接口的,那么就先看看接口里面都包含些什么

1.接口中可以定义public static final 的常量
2.接口中可以定义多个public的方法
一个接口就包含上面两方面的内容,不会再有其他的东西了
但是这里Lambda表达式只能用来简化仅包含一个public方法的接口,也就是说,如果一个接口中包含了多个public方法,那么就不能够使用Lambda表达式进行创建

现在知道了Lambda表达式只能用来简化仅包含一个public方法的接口的创建,现在就具体说如何使用Lambda表达式
无论如何,这个接口中的方法都会以一下的6种形式中的一种出现

1.返回值为void,没有参数
2.返回值为void,有一个参数
3.返回值为void,有多个参数
4.有返回值,没有参数
5.有返回值,有一个参数
6.有返回值,有多个参数
现在分别就6种情况给出写法

public interface In {
void func();
}

In in1 = ()->{};//这基本上最简单的Lambda表达式的写法了,实现的方法将什么都不会做
In in2 = ()->System.out.println("Func");//这里实现的方法将会输出一个字符串
In in3 = ()->{
System.out.println("Func1");
System.out.println("Func2");
};//使用{}来使用多个语句

public interface In {
void func(int a);
}

In in = a->System.out.println(a);
In in = (a)->{};

public interface In {
void func(int a,int b,int c);
}

In in = (a,b,c)->{
//写入语句
};

public interface In {
int func();
}

In in = ()->2;
In in1 = ()->{return 2;};

public interface In {
int func(int a);
}

In in = a->a+1;
In in2 = a -> {
return a+1;
};

public interface In {
int func(int a,int b,int c);
}

In in = (a,b,c)->a+b+c;
In in1 = (a,b,c)->{
return a+b+c;
};

掌握了上面这几种情形,现在就拿一些试试,比如说常见的开启子线程,常规代码是这样的

new Thread(new Runnable() {
@Override
public void run() {
//do something
}
}).start();

这里就可以使用Lambda来简化上面的写法

new Thread(()->{
//do something
}).start();

之所以可以这样写,就是因为Runnable是一个只有一个run方法的接口

所以要记住:所有使用接口的地方都可以Lambda表达式来进行简化,只是一个简单的替换而已。

作者:ylqhust
来源:CSDN
原文:https://blog.csdn.net/ylqhust/article/details/50822955
版权声明:本文为博主原创文章,转载请附上博文链接!

上一篇 下一篇

猜你喜欢

热点阅读