博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java8 Lambda
阅读量:4972 次
发布时间:2019-06-12

本文共 1390 字,大约阅读时间需要 4 分钟。

Lambda 实例

  1. 无参,无返回值
// 以前的写法Runnable runnable = new Runnable() {    @Override    public void run() {        System.out.println("无参无返回值");    }};// lambda 的写法Runnable runnable1 = () -> System.out.println("无参无返回值");
  1. 有一个参数,无返回值
Consumer
consumer = x -> System.out.println(x);consumer.accept("有一个参数,没有返回值");
  1. 有两个参数,返回int
Comparator
comparator = (x, y) -> { System.out.println("有两个参数,有返回值"); return x.compareTo(y);};int compare = comparator.compare(5, 4);

方法引用的三种语法格式

Lambda 体中调用方法的参数列表与返回值类型,要与函数式接口中抽象方法的函数列表和返回值类型保持一致。

  1. 对象::实例方法
// 1PrintStream printStream = System.out;Consumer
consumer = printStream::println;// 2UserTest userTest = new UserTest(1,"李四");Supplier
supplier = userTest::getId;supplier.get();
  1. 类::静态方法
Comparator
comparator = Integer::compare;int compare = comparator.compare(3, 5);
  1. 类::实例方法
    参数列表的第一个参数是实例方法的调用者,第二参数是实例方法的参数时,可以用ClassName::method的方式。
BiPredicate
biPredicate = String::equals;

构造器引用

  1. 无参构造
// 调用无参构造函数Supplier
supplier = UserTest::new;
  1. 有参构造
// 调用有两个参数的有参构造BiFunction
function = UserTest::new;
  1. 数组引用
// 以前的做法Function
function1 = (x) -> new String[x];String[] apply = function1.apply(10);// 现在的做法Function
function2 = String[]::new;String[] apply1 = function2.apply(10);

转载于:https://www.cnblogs.com/Godfunc/p/9208962.html

你可能感兴趣的文章
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>
我对应用软件——美团的看法
查看>>
执行了的程序,才是你的程序.
查看>>
struts2.x + Tiles2.x读取多个xml 配置文件
查看>>
表单校验之datatype
查看>>
python第六篇文件处理类型
查看>>
ubuntu16系统磁盘空间/dev/vda1占用满的问题
查看>>
grid网格布局
查看>>
JSP常用标签
查看>>
九涯的第一次
查看>>
处理器管理与进程调度
查看>>
向量非零元素个数_向量范数详解+代码实现
查看>>
java if 用法详解_Java编程中的条件判断之if语句的用法详解
查看>>
matlab sin函数 fft,matlab的fft函数的使用教程
查看>>
mysql adddate()函数
查看>>
mysql sin() 函数
查看>>
单片机复位电路
查看>>
php json_decode失败,返回null
查看>>