今天无意间看到了JDK1.8的新特性--Lambda

然后小试了一下

在实现接口引用时

发现

在1.8以下不支持

在匿名内部类中引用外部变量

但是1.8中已经可以了

不使用Lambda技术也可以使用,

int a=0;

new Runnable(){

public void run(){

System.out.println("a="+a);

}

}.run();

这在1.8中是可以运行的,

在1.8一下是不可以的

不是说一定要使用

int a=0;

Runnable r=()->{

System.out.println("a="+a);

};

r.run();

Lambda表达式才可以使用外部的变量,算是1.8的一个改进吧

顺便玩了一下lambda与stream结合

public class TestLambda_List {
public static void main(String[] args) {
List<Person> list=arrayPerson();
list.stream().forEach(
p->System.out.println(p.toString())
);
System.out.println("*************Stream过滤**************");
list.stream().filter(p->p.getSex().equals(Person.Sex.WOMAN)).forEach(
p->System.out.println(p.toString())
);
}

/*懂的人自然懂,不懂的人就装懂吧*/
static List<Person> arrayPerson(){
List<Person> list = new ArrayList<Person>();
Person p = new Person("波多野结衣", 30, Person.Sex.WOMAN);
list.add(p);
p = new Person("北条麻妃", 40, Person.Sex.WOMAN);
list.add(p);
p = new Person("大桥未久", 31, Person.Sex.WOMAN);
list.add(p);
p = new Person("莲美恋", 28, Person.Sex.WOMAN);
list.add(p);
p = new Person("Julia", 29, Person.Sex.WOMAN);
list.add(p);
p = new Person("加藤鹰", 35, Person.Sex.MAN);
list.add(p);
return list;
}
}

class Person {
public static enum Sex { MAN, WOMAN; }
private String name;
private int age;
private Sex sex;

public String toString() { return "Person [name=" + name + ", age=" + age + ", sex=" + sex + "]"; }

public Person(String name, int age, Sex sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}

public Person() {}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public Sex getSex() { return sex; }
public void setSex(Sex sex) { this.sex = sex; }
}

还挺好玩的,有些事就不说了啊,大家都懂的

JDK1.8之Lambda相关推荐

  1. 万字详解,JDK1.8的Lambda、Stream和日期的使用详解

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 本文 ...

  2. jdk1.8之lambda表达式

    2019独角兽企业重金招聘Python工程师标准>>> 1.Lambda Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此 ...

  3. 一文详解 JDK1.8 的 Lambda、Stream、LocalDateTime

    转载自公众号 JAVA日知录 今天跟小伙伴们聊聊 Java中JDK1.8的一些新语法特性使用,主要是Lambda.Stream和LocalDate日期的一些使用讲解. Lambda Lambda介绍 ...

  4. Jdk1.8新特性(二)——lambda表达式(参数列表)-{}和函数式接口@FunctionalInterface

    Jdk1.8新增lambda表达式是为了简化代码,主要用于简化匿名实现类,为其提供一种更加简洁的写法.Lambda表达式在swift语言中被称为代码块,lambda表达式可以认为是一种特殊的接口,是匿 ...

  5. lambda表达式——写多线程

    JDK1.8 中Lambda 表达式的出现,基本可以取替原来的匿名类实现多线程的方式.下面列举常用的常用的三种情况. 一.普通开启异步线程 new Thread(() -> System.out ...

  6. IDEA Maven 项目默认编译项目为JDK 1.5

    昨天晚上遇到一个问题,我在idea中创建了有个maven项目,想使用jdk1.8的lambda表达式,结果提示我错误,是1.8才可以.当时我想我的jdk就是1.8啊.经过各种搜索,才知道maven默认 ...

  7. stream filter_Stream 流实践

    Stream 流 看之前:需要一些Lambda语法知识,可以查看参考资料中的文章:万字详解,JDK1.8的Lambda.Stream和日期的使用详解. 正文 Java8 API Stream 允许你以 ...

  8. 设置https请求忽略安全证书

    前两天要调用第三方的接口遇到了安全证书的问题,找了各种方法下面贴一下自己汇总的解决办法: 第一个写法(这个写法是最简单的,亲测有效,但是这个写法用到了jdk1.8的lambda表达式,1.8之前的版本 ...

  9. Java虚拟机这一块 —— 深入理解java虚拟机(jvm)

    jvm深入理解 为什么要了解虚拟机 虚拟机历史 未来的 Java 技术 模块化 多核并行 丰富语法 64 位 更强的垃圾回收器(现在主流 CMS.G1) JavaSE 体系架构 JDK JRE JVM ...

最新文章

  1. 跟小博老师一起学习数据库 ——SELECT
  2. HDU 5734 Acperience
  3. 揭秘百度微服务监控:百度游戏服务监控的演进
  4. atm java代码_用JAVA制作简单的ATM的代码 求教
  5. MyEclipse 编写 ExtJS 卡死问题解决方法
  6. 读者吐槽:Go 面试总被问到 RPC
  7. opencv 直方图反向投影
  8. 我的专业我的梦作文计算机,我的创新我的梦作文
  9. RuoYi-Cloud 进阶篇_04( Seata 高可用集群 AT模式 需求实战)
  10. mysql 5.7 内存占用_MySQL 5.7 内存使用计算
  11. [转]把复杂事物简明化
  12. iOS开发实战小知识点(四)
  13. nginx + tomcat + redis 部署项目,解决session共享问题。
  14. GD32单片机介绍——兆易创新
  15. 画PCB必备的3D元器件模型下载地址整理
  16. pr基本图形模板无法使用_PR基本图形的导入,使用图文教程
  17. 「BJOI 2019」勘破神机
  18. Android中的传感器之---磁场传感器
  19. 微信网页开发异常——签名失败
  20. Java爬虫获取豆瓣的短评数据

热门文章

  1. java使用模板导出Excel表格
  2. 音视频支持和音视频播放
  3. [假如生活欺骗了你]
  4. python中幂运算_python里幂运算
  5. 亲爱的老狼-超链接的运用方式
  6. Android6.0 源码修改之Settings音量调节界面增加通话音量调节
  7. Cascade-RCNN
  8. html编辑唐诗的格式,标准格式唐诗宋词
  9. 芝诺悖论------芝诺的乌龟
  10. PMO项目经理须掌握的组织现状诊断技能【附诊断表】