我们希望创建一个匿名内部类对象 我们只是为了做这件事情而不得不创建一个对象 我们真正希望做的事情:将run方法体内的代码传递给Thread类知晓
传递一段代码--这才是我们真正的目的 而创建对象只是受限于面向对象语句而不得不采取的一种手段方式
如果我们将关注点从“怎么做”回归到“做什么”的本质上 就会发现只要能够更好的达到目的 过程与形式并不重要
代码:
public static void main(String[] args) { new Thread(()->{ System.out.println(Thread.currentThread().getName()+"创建了线程"); }).start(); }
运行结果:
这段代码和刚才的执行效果是完全一样的 可以在1.8或更高的编译级别下通过 从代码的语义可以看出
我们启动了一个线程 而线程任务的内容以一种更加简洁的形式被指定
不再有 不得不创建接口对象的束缚 不再有抽象方法覆盖重写的负担
Lambda省去面向对象的条条框框 格式由3个部分组成
Lambda表达式的标准格式为
(参数类型 参数名称)->{代码语句}