标签:Boy boy void say public 表达式 Lambda
什么是Lambda表达式
个人认为 是一种简化代码的一种方法 让代码看着更简洁 更舒服
语法
无参数:()->一行表达式....;
一个参数:a->一行表达式....;
多个参数(a,b,...n)->{表达式};
()
只有一个参数的情况下才可以省略
{}
只有一行表达式的情况下才可以省略
示意图
示例
package day02;
/*
* 推导lambda表达式
*
* 函数式接口:任何接口 如果仅仅包含一个抽象方法 那么他就是一个函数式接口
*
* 对于函数式接口 可以通过Lambda表达式来创建该接口的对象
* */
public class TestLambda {
// 静态内部类
static class BoyIn implements Boy {
@Override
public void say() {
System.out.println("静态内部类之我是一个男孩");
}
}
public static void main(String[] args) {
// 直接调用
new BoyIn().say();
// 局部内部类
class BoyIn implements Boy {
@Override
public void say() {
System.out.println("局部内部类之 我是一个男孩");
}
}
Boy boy = new BoyIn();
boy.say();
// 匿名内部类 没有类的名称 必须借助接口或者父类
boy = new Boy() {
@Override
public void say() {
System.out.println(" 匿名内部类 之 我是一个男孩");
}
};
boy.say();
// 用Lambda简化
boy = ()->{
System.out.println(" Lambda简化 之 我是一个男孩");
};
boy.say();
}
}
interface Boy {
void say();
}
// 定义一个实现类
class BoyIn implements Boy {
@Override
public void say() {
System.out.println("我是一个男孩1");
}
}
输出结果
小结
当且仅当
任何接口只有一个
抽象方法的时候 才可以使用Lambda表达式
省去了大量的代码 让代码看着更简洁 执行效率更快
标签:Boy,boy,void,say,public,表达式,Lambda 来源: https://www.cnblogs.com/juanbao/p/15163911.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。