编程思想转换&体验Lambda的更优写法,Lambda标准格式
编程思想转换&体验Lambda的更优写法:
编程思想:
做什么,而不是怎么做
我们真的希望创建一个匿名内部类对象吗?不。我们只是为了做这件事情而不得不创建一个对象。我们真正希望做
的事情是︰将run方法体内的代码传递给Thread类知晓。
传递一段代码—―这才是我们真正的目的。而创建对象只是受限于面向对象语法而不得不采取的一种手段方式。
那,有没有更加简单的办法?如果我们将关注点从"怎么做"回归到“做什么"的本质上,就会发现只要能够更好地达
到目的,过程与形式其实并不重要。
生活举例:
当我们需要从北京到上海时,可以选择高铁、汽车、骑行或是徒步。我们的真正目的是到达上海,而如何才能到达
上海的形式并不重要,所以我们一直在探索有没有比高铁更好的方式——搭乘飞机。
而现在这种飞机( 甚至是飞船)已经诞生∶2014年3月Oracle所发布的Java 8 ( JDK 1.8 )中,加入了Lambda表达
式的重量级新特性,为我们打开了新世界的大门。
体验Lambda的更优写法:
public class Lamba { public static void main(String[] args) { //使用匿名内部类的方式,实现多线程 new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()+"新线程创建了"); } }).start(); //使用Lambda表达式,实现多线程 new Thread(()-> { System.out.println(Thread.currentThread().getName() + "新线程创建了"); } ).start(); } }
Lambda标准格式:
由三部分组成:
a.—些参数
b.—个箭头
c.一段代码
格式:
(参数列表)-> {一些重写方法的代码};
解释说明格式:
():接口中抽象方法的参数列表,没有参数,就空着;有参数就写出参数,多个参数使用逗号分隔
->:传递的意思,把参数传递给方法体{}
{}:重写接口的抽象方法的方法体