Lambdas了解

功能接口的一个极其宝贵的特性是可以使用lambdas实例化它们。以下是一些关于lambdas的例子:

以逗号分隔的输入列表,左边是指定类型的输入,右边是返回的块:         (int x,int y)-> {return x + y;}

以逗号分隔的输入列表,左侧为推断类型,右侧为返回值:                                (x,y)- > x + y

左侧为推断类型的单参数,右侧为返回值:                                                              x -> x * x

左边没有输入(正式名称:“burger arrow”),右侧返回值:                                            ()- > x

在左边有推断类型的单参数,在右边没有返回(空返回)的块:                                   x - > { System.out.println(x);}

静态方法参考:                          String::valueOf

非静态方法参考:                      Object::toString

捕捉方法参考:                                  x::toString

构造函数参考:                      ArrayList::new

你可以把方法参考表格看作是其他形式的缩写。

方法参考等价的表达式

字符串:返回对象的值x - > String.valueOf(x)

对象::x - > x.toString tostring()

x:tostring()- > x.toString()

ArrayList::new()- > new ArrayList <>()

当然,Java中的方法可以重载。类可以有多个具有相同名称但不同参数的方法。它的构造函数也一样。ArrayList::new可以引用它的三个构造函数中的任何一个。它解决的方法取决于它所使用的功能接口。

以下是两种不能使用错误的例子:

例1:

int count = 0;
List<String> strings = Arrays.asList("a", "b", "c");
strings.forEach(s -> {
count++; // 错误:不能修改count的值
});
例2:
void appendAll(Iterable<String> values, Appendable out)
throws IOException { // doesn't help with the error
values.forEach(s -> {
out.append(s); // 错误:不能在这里抛出IOException
// Consumer.accept(T) doesn't allow it
});
} 以上是本人对Lambdas的了解性知识,日常遇到的情况可以试着用一下,没有进行深入研究,仅供参考。

lambdas了解的更多相关文章

  1. Lambdas in Java 8--reference

    Part 1 reference:http://jaxenter.com/lambdas-in-java-8-part-1-49700.html Get to know lambda expressi ...

  2. Java 8: Lambdas和新的集合Stream API

    Lambda是Java8的主要特色,Java 8: Lambdas & Java Collections | zeroturnaround.com一文介绍了使用Lambda集合处理大量数据的方 ...

  3. 用 JMH 检测 Lambdas 序列化性能

    本文将介绍如何进行 Java Lambdas 序列化性能检测.Lambdas 的重要性以及 Lambdas 在分布式系统中的应用. Lambdas 表达式是 Java 8 中万众期待的新特性,其若干用 ...

  4. From delegates to lambdas z

    I thought of naming this post “Evolution of lambdas in C#”, then I decided that wouldn’t be closest ...

  5. C++11 带来的新特性 (4)—— 匿名函数(Lambdas)

    1 语法 Lambdas并不是新概念,在其它语言中已经烂大街了.直接进入主题,先看语法: [ captures ] ( params ) specifiers exception attr -> ...

  6. Java 8 新特性——Lambdas 表达式

    本文内容 引入 测试数据 collect(toList()) map filter flatMap max 和 min reduce 整合操作 参考资料 Java 8 对核心类库的改进主要包括集合类的 ...

  7. Swift 中的闭包与 C 和 Objective-C中的 blocks 以及其它一些编程语言中的 lambdas 比較类似。

    闭包是功能性自包括模块,能够在代码中被传递和使用. Swift 中的闭包与 C 和 Objective-C中的 blocks 以及其它一些编程语言中的 lambdas 比較相似.  闭包能够 捕获 和 ...

  8. RxJava 设计理念 观察者模式 Observable lambdas MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. lambdas vs. method groups

    Update: Due to a glitch in my code I miscalculated the difference. It has been updated. See full his ...

随机推荐

  1. Effective Java 第三版——9. 使用try-with-resources语句替代try-finally语句

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  2. iOS 单利模式实现/优缺点

    感谢此文章提供摘要: http://www.cnblogs.com/lyanet/archive/2013/01/11/2856468.html 优缺点:http://blog.csdn.net/ta ...

  3. Spark源码剖析(五):Master原理与源码剖析(下)

    一. 状态改变机制源码分析 在剖析Master核心的资源调度算法之前,让我们先来看看Master的状态改变机制. Driver状态改变  可以看出,一旦Driver状态发生改变,基本没有好事情,后果要 ...

  4. [LeetCode] 链表反转相关题目

    暂时接触到LeetCode上与链表反转相关的题目一共有3道,在这篇博文里面总结一下.首先要讲一下我一开始思考的误区:链表的反转,不是改变节点的位置,而是改变每一个节点next指针的指向. 下面直接看看 ...

  5. 《精通Spring 4.X企业应用开发实战》读书笔记1-1(IoC容器和Bean)

    很长一段时间关注在Java Web开发的方向上,提及到Jave Web开发就绕不开Spring全家桶系列,使用面向百度,谷歌的编程方法能够完成大部分的工作.但是这种不系统的了解总觉得自己的知识有所欠缺 ...

  6. [编织消息框架][netty源码分析]9 Promise 实现类DefaultPromise职责与实现

    netty Future是基于jdk Future扩展,以监听完成任务触发执行Promise是对Future修改任务数据DefaultPromise是重要的模板类,其它不同类型实现基本是一层简单的包装 ...

  7. jquery隐藏域赋值

    <input type="hidden" id="id" value="value"> $("#id的值") ...

  8. C# 给DateTime赋值正确方式

    DateTime xxx = new DateTime(2007,1,1,21,21,21); string time = new DateTime(2007, 1, 1, 21, 21, 21).T ...

  9. perl多线程使用

    原文来自:博客园(华夏35度)http://www.cnblogs.com/zhangchaoyang 作者:Orisun <<=========================threa ...

  10. open live writer实现多博客同步发送

    转载请注明出处 本文出自Hansion的博客 很多人都有多个博客平台同时使用,如CSDN.博客园.开源中国等,但是在其中一个平台上写完博客,想同样发表到其他平台上,这需要我们复制粘贴或者博客搬家,这往 ...