Lamda表达式
是希腊字母表中的第11个字符,英文名称为Lambda避免匿名内部类定义过多
它实质上是函数式编程的概念
(参数) -表达式
(参数) -语句
(参数(语句)
(a-system.out.print )“ilike lambda”a );
new Thread ()-System.out.println )“多线程学习。 ”。 () .开始);
为什么要使用lambda公式
如果避免对匿名内部类定义过多,则可以去除一堆看起来简单但没有意义的代码,只保留核心逻辑。
你可能觉得我看了Lambda式,不仅不觉得简洁,反而更混乱,不明白了。 那是因为我们还不习惯。 多用,看惯了就好了。
本章重点
函数接口(函数型接口)理解为学习java8 lambda式时重要的函数接口的定义如果任何接口都只包含唯一的抽象方法,则它是函数型接口。 对于函数类型接口,可以用lambda表达式为该接口创建对象。
实例代码
静态内部类、局部内部类、匿名内部类和lambda表达式公共类测试lambda 1
//静态内部类
staticclasslike 2实施ilike
@Override
公共语音实验室(
system.out.println (Ilike Lambda2);
}
}
publicstaticvoidmain (字符串[ ]数组) {
ilike=新Like (;
i.lambda (;
I=纽约2 (;
i.lambda (;
//局部内部类
3级实施ilike
@Override
公共语音实验室(
system.out.println (Ilike Lambda3);
}
}
I=纽约3 (;
i.lambda (;
//匿名内部类,没有类的名字,必须租用接口或丈夫类
I=新的Ilike ()。
@Override
公共语音实验室(
system.out.println (爱尔兰4 );
}
(;
i.lambda (;
用lambda简化
i=()- {
system.out.println (Ilike Lambda5);
(;
i.lambda (;
}
}
定义//函数型接口
接口ilike {2}
void lambda (;
}
//实现接口
类实施ilike {2}
@Override
公共语音实验室(
system.out.println (爱尔兰共和国);
}
}
lambda表达式:
公共类测试lambda 2
publicstaticvoidmain (字符串[ ]数组) {
I love love=空值;
//2.lamda表示简化
//I love love=(国际)-{
//system.out.println (ILO veyou-- ' a );
//
//;
//简化1 .取消参数类型
//love=(a )-{
//system.out.println (ILO veyou-- ' a );
//
//;
//简化2简化括号
love=a-{
system.out.println (ILO veyou-- ' a );
(;
//简化3去掉大括号
love=a -系统. out .打印(I love-- ' a );
//总结
//lambda方式在代码只有一行的情况下简化为一行,在有多行的情况下使代码块薄片
//假设接口是函数类型(接口只有一个方法位函数方法) ) ) ) )。
//多个参数也可以排除参数类型,要全部排除必须加括号
love.love(2;
}
}
接口I love {2}
欢跃(国际);
}