前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018-10-19 分分钟教会你使用Lambda表达式

2018-10-19 分分钟教会你使用Lambda表达式

作者头像
Albert陈凯
发布2018-11-07 16:57:18
7660
发布2018-11-07 16:57:18
举报
文章被收录于专栏:Albert陈凯Albert陈凯

Java 中使用 Lambda表达式 Lambda的作用 Lambda表达式的作用主要是用来简化接口的创建,interface。 需要注意的是: 1.任何需要使用interface的地方都可以使用Lambda表达式来简化; 2.Lambda表达式不能够简化类或者抽象类得创建,如果试图使用Lambda表达式去创建一个类或者抽象类 将会报错如下英文信息 ”Target type of a lambda conversion must be an interface“ 这就是为什么Lambda表达式只用用来简化创建接口

Java中的Interface Lambda表达式既然是用来简化创建接口的,那么就先看看接口里面都包含些什么

1.接口中可以定义public static final 的常量 2.接口中可以定义多个public的方法 一个接口就包含上面两方面的内容,不会再有其他的东西了 但是这里Lambda表达式只能用来简化仅包含一个public方法的接口,也就是说,如果一个接口中包含了多个public方法,那么就不能够使用Lambda表达式进行创建

现在知道了Lambda表达式只能用来简化仅包含一个public方法的接口的创建,现在就具体说如何使用Lambda表达式 无论如何,这个接口中的方法都会以一下的6种形式中的一种出现

1.返回值为void,没有参数 2.返回值为void,有一个参数 3.返回值为void,有多个参数 4.有返回值,没有参数 5.有返回值,有一个参数 6.有返回值,有多个参数 现在分别就6种情况给出写法

public interface In { void func(); }

In in1 = ()->{};//这基本上最简单的Lambda表达式的写法了,实现的方法将什么都不会做 In in2 = ()->System.out.println("Func");//这里实现的方法将会输出一个字符串 In in3 = ()->{ System.out.println("Func1"); System.out.println("Func2"); };//使用{}来使用多个语句

public interface In { void func(int a); }

In in = a->System.out.println(a); In in = (a)->{};

public interface In { void func(int a,int b,int c); }

In in = (a,b,c)->{ //写入语句 };

public interface In { int func(); }

In in = ()->2; In in1 = ()->{return 2;};

public interface In { int func(int a); }

In in = a->a+1; In in2 = a -> { return a+1; };

public interface In { int func(int a,int b,int c); }

In in = (a,b,c)->a+b+c; In in1 = (a,b,c)->{ return a+b+c; };

掌握了上面这几种情形,现在就拿一些试试,比如说常见的开启子线程,常规代码是这样的

new Thread(new Runnable() { @Override public void run() { //do something } }).start();

这里就可以使用Lambda来简化上面的写法

new Thread(()->{ //do something }).start();

之所以可以这样写,就是因为Runnable是一个只有一个run方法的接口

所以要记住:所有使用接口的地方都可以Lambda表达式来进行简化,只是一个简单的替换而已。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.10.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 所以要记住:所有使用接口的地方都可以Lambda表达式来进行简化,只是一个简单的替换而已。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档