Java8 特性—— Lambda 表达式
2016-07-22 14:11
507 查看
Java 8 的一个大亮点是引入 Lambda 表达式,使用它设计的代码会更加简洁。当开发者在编写 Lambda 表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用 Lambda 语法来代替匿名的内部类,代码不仅简洁,而且还可读。
没有使用 Lambda 的老方法:
使用 Lambda:
让我们来看一个更明显的例子。
不采用 Lambda 的老方法:
使用 Lambda:
正如你所看到的,使用 Lambda 表达式不仅让代码变的简单、而且可读、最重要的是代码量也随之减少很多。然而,在某种程度上,这些功能在 Scala 等这些 JVM 语言里已经被广泛使用。
并不奇怪,Scala 社区是难以置信的,因为许多 Java 8 里的内容看起来就像是从 Scala 里搬过来的。在某种程度上,Java 8 的语法要比 Scala 的更详细但不是很清晰,但这并不能说明什么,如果可以,它可能会像 Scala 那样构建 Lambda 表达式。
一方面,如果 Java 继续围绕 Lambda 来发展和实现 Scala 都已经实现的功能,那么可能就不需要 Scala了。另一方面,如果它只提供一些核心的功能,例如帮助匿名内部类,那么 Scala 和其他语言将会继续茁壮成长,并且有可能会凌驾于 Java 之上。其实这才是最好的结果,有竞争才有进步,其它语言继续发展和成长,并且无需担心是否会过时。
没有使用 Lambda 的老方法:
button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ System.out.println("Actiondetected"); } });
使用 Lambda:
button.addActionListener(()->{ System.out.println("Actiondetected"); });
让我们来看一个更明显的例子。
不采用 Lambda 的老方法:
Runnable runnable1=new Runnable(){ @Override public void run(){ System.out.println("RunningwithoutLambda"); } };
使用 Lambda:
Runnable runnable2=()->{ System.out.println("RunningfromLambda"); };
正如你所看到的,使用 Lambda 表达式不仅让代码变的简单、而且可读、最重要的是代码量也随之减少很多。然而,在某种程度上,这些功能在 Scala 等这些 JVM 语言里已经被广泛使用。
并不奇怪,Scala 社区是难以置信的,因为许多 Java 8 里的内容看起来就像是从 Scala 里搬过来的。在某种程度上,Java 8 的语法要比 Scala 的更详细但不是很清晰,但这并不能说明什么,如果可以,它可能会像 Scala 那样构建 Lambda 表达式。
一方面,如果 Java 继续围绕 Lambda 来发展和实现 Scala 都已经实现的功能,那么可能就不需要 Scala了。另一方面,如果它只提供一些核心的功能,例如帮助匿名内部类,那么 Scala 和其他语言将会继续茁壮成长,并且有可能会凌驾于 Java 之上。其实这才是最好的结果,有竞争才有进步,其它语言继续发展和成长,并且无需担心是否会过时。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树