Java技术分享:Lambda表达式之接口实例化

Posted 程序员的小傲娇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java技术分享:Lambda表达式之接口实例化相关的知识,希望对你有一定的参考价值。

今天小千给大家分享的技术是:Lambda表达式之接口实例化。
在这里插入图片描述

Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。

Lambda表达式还增强了集合库。 Java SE 8添加了2个对集合数据进行批量操作的包: java.util.function 包以及java.util.stream 包。 流(stream)就如同迭代器(iterator),但附加了许多额外的功能。 总的来说,lambda表达式和 stream 是自Java语言添加泛型(Generics)和注解(annotation)以来最大的变化。

语法格式:

(参数)->{语句块}

其中只有一个参数的化()可以省略

Lambda表达式可以实现的操作:

1、完成接口的实例化或抽象类的实例化

比如我们线程的创建:

之前都是这样创建的:

Public class My_Main

{

Public static void main(String[] args){

New Thread(new Runnable(){

Public void run(){

System.out.print(“子线程输出”);

}

}).start();

}

}

可是使用Lambda表达式却可以这样写:

Public class My_Main2

{

Public static void main(String[] args){

New Thread(()->System.out.print(“子线程输出”)).start();

}

}

看起来Lambda表达式是不是很简洁。

再例如:

自定义一个接口,接口中有一个方法

public interface AAction {

void work(String name);

}

创建类进行测试

public class My_Main {

private static void t1(AAction aAction){

aAction.work(“张三”);

}

public static void main(String[] args) {

t1((n)-> System.out.println(n+" 正在千锋学习呢"));

}

}

总结:Lambda表达式实现接口的实例化要求接口中只能有一个方法。如果有多个方法就不好推断。
  
本文来自千锋教育,转载请注明出处。

以上是关于Java技术分享:Lambda表达式之接口实例化的主要内容,如果未能解决你的问题,请参考以下文章

java8新特性之Lambda表达式入门

Java8新特性之lambda表达式

java 核心技术卷一笔记 6 .1.接口 lambda 表达式 内部类

为什么匿名内部类可以实例化并实现抽象方法?lambda表达式是简化了匿名内部类的实现过程吗?

[技术分享] 20171209_java8新特性_lambda表达式语法

优雅编程之函数式接口