码迷,mamicode.com
首页 > 其他好文 > 详细

lambda初级

时间:2019-09-05 18:21:42      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:项目   turn   数列   nop   nal   inter   sys   new   function   

要求:    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初级

标签:项目   turn   数列   nop   nal   inter   sys   new   function   

原文地址:https://www.cnblogs.com/draymond/p/11468735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!