编程思想转换
做什么,而不是怎么做
我们真的希望创建一个匿名内部类对象吗?不。我们只是为了做这件事情而不得不创建一个对象。我们真正希望做的事情是︰将run方法体内的代码传递给 Thread类知晓。
传递一段代码——这才是我们真正的目的。而创建对象只是受限于面向对象语法而不得不采取的一种手段方式。那,有没有更加简单的办法?如果我们将关注点从””怎么做”回归到”做什么”的本质上,就会发现只要能够更好地达到目的,过程与形式其实并不重要。
生活举例
当我们需要从北京到上海时,可以选择高铁、汽车、骑行或是徒步。我们的真正目的是到达上海,而如
l何才能到达
上海的形式并不重要,所以我们一直在探索有没有比高铁更好的方式——搭乘飞机。
而现在这种飞机(甚至是飞船)已经诞生∶2014年3月Oracle所发布的Java 8( JDK 1.8)中,加入了Lambda表达式的重量级新特性,为我们打开了新世界的大门。
Lambda表达式
语义分析
仔细分析该代码中的语义,Runnable接口只有一个run方法的定义∶
public abstract void run( ) ;
即制定了一种做事情的方案(其实就是一个函数)︰
·无参数︰不需要任何条件即可执行该方案。·无返回值:该方案不产生任何结果。
·代码块(方法体)︰该方案的具体执行步骤。
同样的语义体现在Lambda语法中,要更加简单︰
() -> system.out.println(“多线程任务执行!”)
·前面的一对小括号即run方法的参数(无),代表不需要任何条件﹔
原创文章,作者:Carrie001128,如若转载,请注明出处:https://blog.ytso.com/273165.html