接上篇《JAVA-多线程(一)(JAVA从基础开始 – 3)》
Lambda表达式
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新>特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法>中)。
使用 Lambda 表达式可以使代码变的更加简洁紧凑。
是一个匿名函数,即没有函数名的函数。
相当于 javascript中的箭头函数 : =>{}
//菜鸟java Lambda
// 1. 不需要参数,返回值为 5
() -> 5
// 2. 接收一个参数(数字类型),返回其2倍的值
x -> 2 * x
// 3. 接受2个参数(数字),并返回他们的差值
(x, y) -> x – y
// 4. 接收2个int型整数,返回他们的和
(int x, int y) -> x + y
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)
(String s) -> System.out.print(s)
只有一个函数的接口,可以用来创建Lambda对象
package Lambda;
public class MyLambda {
//2静态内部类
static class Like2 implements ILike {
@Override
public void labdas() {
System.out.println("I like lambda2");
}
}
public static void main(String[] args) {
ILike like = new Like();
like.labdas();
like = new Like2();
like.labdas();
//3局部内部类
class Like3 implements ILike {
@Override
public void labdas() {
System.out.println("I like lambda3");
}
}
like = new Like3();
like.labdas();
//4匿名内部类,没有类名
like = new ILike() {
@Override
public void labdas() {
System.out.println("I like lambda4");
}
};
like.labdas();
//5简化 用Lambda表达式
like = () -> {
System.out.println("I like lambda5");
};
like.labdas();
MyL my = () -> {
System.out.println("自我实现");
};
my.OpenMyl();
//由此可以看出 方法名是接口中的唯一方法
// Lambda把接口中的唯一方法重写
}
}
//定义一个函数式接口
interface ILike {
void labdas();
}
//1实现类
class Like implements ILike {
@Override
public void labdas() {
System.out.println("I like lambda");
}
}
//自我实现
interface MyL {
void OpenMyl();
}
带参
package Lambda;
public class HaveAgs {
public static void main(String[] args) {
ILove loves = (a) -> {
System.out.println(a);
};
//若代码只有一行 可简写为
ILove loves = (a) -> System.out.println(a);
//若多行就使用代码块{}
loves.love(123);
}
}
interface ILove {
void love(int a);
}
1.前提是必须是函数式接口—接口中只能有一个方法!
2.多个参数也可以去掉参数类型
3.若参数只有一个可以去掉括号 a->{xxx}
源码下载 0积分
文件下载: 所有java文件都在这 多线程.