lambda初级
Posted draymond
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lambda初级相关的知识,希望对你有一定的参考价值。
要求: 1 接口只有1个抽象方法,可以使用 @FunctionalInterface 注解定义,不是必须
2 lambda三要素
2.1: () 代表参数列表,类型可有可无,java回自己推算
2.2: -> 连接符
2.3: 方法体 , 只有1行代码可以省略
/**
* 无参无返回值函数
*/
@FunctionalInterface
public interface NoParaAndReturn
//打印参数
void printParameter();
//有参无返回值函数
@FunctionalInterface
interface HaveParaAndNoReturn
//打印参数
void printParameter(String color, String inch);
//无参有返回值函数
interface NoParaAndHaveReturn
int printParameter();
//有参数有返回值
interface HaveParaAndHaveReturn
int printParameter(String color, String inch);
//############## 1 无参无返回值函数 ###################
@Test
public void noParaAndReturn()
// ######### 内部类实现 #########
NoParaAndReturn innerClass = new NoParaAndReturn()
@Override
public void printParameter()
System.out.println("内部类实现:这是一个小米手机");
;
innerClass.printParameter();
//######## lamda类实现 #########
NoParaAndReturn lambda = () ->
System.out.println("lamda类实现:这是一个华为手机");
;
lambda.printParameter();
//############## 2 有参无返回值函数 ###################
@Test
public void haveParaAndNoReturn()
// ######### 内部类实现 #########
HaveParaAndNoReturn innerClass = new HaveParaAndNoReturn()
@Override
public void printParameter(String color, String inch)
System.out.println("内部类实现:华为p30颜色:" + color + "英寸:" + inch);
;
innerClass.printParameter("白色", "5.2");
//######## lamda类实现 #########
HaveParaAndNoReturn lambda = (color, inch) -> System.out.println("lamda类实现:华为p30颜色:" + color + "英寸:" + inch);
lambda.printParameter("白色", "5.2");
//############## 3 无参有返回值函数 ###################
@Test
public void noParaAndHaveReturn()
// ######### 内部类实现 #########
NoParaAndHaveReturn innerClass = new NoParaAndHaveReturn()
@Override
public int printParameter()
System.out.println("内部类实现:定义返回值 0");
return 0;
;
int innerClassReturn = innerClass.printParameter();
System.out.println("内部类实现输出返回值" + innerClassReturn);
//######## lamda类实现 #########
NoParaAndHaveReturn lambda = () ->
System.out.println("lamda类实现:定义返回值 0");
return 0;
;
int lambdaReturn = lambda.printParameter();
System.out.println("lamda类实现输出返回值" + lambdaReturn);
//############## 4 有参数有返回值函数 ###################
@Test
public void HaveParaAndHaveReturn()
// ######### 内部类实现 #########
HaveParaAndHaveReturn innerClass = new HaveParaAndHaveReturn()
@Override
public int printParameter(String color, String inch)
System.out.println("内部类实现:定义返回值 0");
return 0;
;
int innerClassReturn = innerClass.printParameter("白色", "5.2");
System.out.println("内部类实现输出返回值" + innerClassReturn);
//######## lamda类实现 #########
HaveParaAndHaveReturn lambda = (colar, inch) ->
System.out.println("lamda类实现:定义返回值 0");
return 0;
;
int lombdaReturn = lambda.printParameter("白色", "5.2");
System.out.println("lamda类实现输出返回值" + lombdaReturn);
在项目中,new Thread 的时候用到过,还有lambda的foreach,比较常用,,其他的还没有用到
以上是关于lambda初级的主要内容,如果未能解决你的问题,请参考以下文章