原创转载请注明出处:http://agilestyle.iteye.com/blog/2424849
Examples of lambdas and method reference equivalents
There are three main kinds of method references:
1. A method reference to a static method
(for example, the method parseInt of Integer, written Integer::parseInt)
2. A method reference to an instance method of an arbitrary type
(for example, the method length of a String, written String::length)
3. A method reference to an instance method of an existing object
(for example, suppose you have a local variable expensiveTransaction that holds an object of type Transaction, which supports an instance method getValue; you can write expensiveTransaction::getValue)
e.g.
package org.fool.java8; import java.util.function.BiFunction; import java.util.function.BiPredicate; import java.util.function.Function; import java.util.function.Supplier; public class MethodReferenceTest { public static void main(String[] args) { /* * A method reference to a static method */ Function<String, Integer> function1 = Integer::parseInt; Integer result1 = function1.apply("123"); System.out.println(result1); /* * A method reference to an instance method of an arbitrary type */ BiPredicate<String, String> predicate = String::endsWith; boolean result2 = predicate.test("hello", "world"); System.out.println(result2); /* * A method reference to an instance method of an existing object */ Person person = new Person("zhangsan", 18); Supplier<String> result3 = person::getName; System.out.println(result3.get()); /** * BiFunction只接收 2 个参数 */ BiFunction<String, Integer, Person> function = Person::new; Person person1 = function.apply("zhangsan", 18); System.out.println(person1); /** * TriFunction 自定义实现接收 3 个参数 */ TriFunction<String, Integer, String, Person> triFunction = Person::new; Person person2 = triFunction.apply("lisi", 28, "female"); System.out.println(person2); } @FunctionalInterface public interface TriFunction<T, U, O, R> { R apply(T t, U u, O o); } private static class Person { private String name; private Integer age; private String sex; public Person(String name, Integer age) { this.name = name; this.age = age; } public Person(String name, Integer age, String sex) { this.name = name; this.age = age; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + '}'; } } }
Console Output
123 false zhangsan Person{name='zhangsan', age=18, sex='null'} Person{name='lisi', age=28, sex='female'}
相关推荐
本书旨在突破我们对编程知识的界限。 如果您想知道Lisp甚至编程本身的真正含义,这就是您一直在寻找的书。
Lambda22-DEMO-PC-041012是一个与Lambda工具相关的演示版本,适用于个人计算机。从描述中可以看出,它可能是一款软件或应用,需要通过特定的安装过程来部署。安装注册码899999999XXXXXXXXXXXEXX9CD7XCXBXW8XXC88VX...
开源项目-mtojek-aws-lambda-go-proxy.zip,mtojek/aws-lambda-go-proxy: Pass Lambda events to the application running on your machine | Debug real traffic locally | Forget about redeployments
综上所述,文档中关于"The LAMBDA-Method: Matlab Implementation"的知识点涉及到GPS定位中的整数模糊度解决、LAMBDA方法的原理和步骤、Matlab实现的历史和版本更新,以及Matlab代码的优化和改进。这一系列知识点...
**PyPI 官网下载 | cdk-lambda-extensions-0.1.232.tar.gz** 这个资源是Python开发者常用的工具,源自Python Package Index(PyPI)官方网站。PyPI是Python社区的一个重要组成部分,它提供了众多开源Python库的存储...
lambda-refarch-mobilebackend, 用于创建移动后端的无服务器参考架构 无服务器参考体系结构: 移动后端README Languages Languages | | | | TW TW TW TW TW 。简介移动后端参考架构( 图 ) 演示如何使用 AWS Lambda ...
**C++ Lambda表达式**是C++编程语言中一个强大的特性,从C++11标准开始引入,到C++20标准进一步增强。Lambda表达式允许程序员在代码中定义匿名函数,即没有名称的函数,这极大地提高了代码的灵活性和可读性。本书...
ASP.NET-MVC-Lambda-Expression-Helpers - 类型化为 ASP.NET MVC 生成链接 ==================================== 允许在 ASP 中使用 Lambda 表达式而不是魔术字符串的扩展方法.NET MVC 5 应用程序。 它解析所有路由...
lambda arguments: expression ``` 它创建了一个没有名称的函数,该函数接受一个或多个参数,并返回由表达式计算的结果。Lambda函数通常用于需要短小、临时的函数场合,避免了为简单操作定义整个函数的麻烦。 **...
【Lambda 表达式】是 Java 8 中的一项重大新特性,它引入了一种更为简洁的函数式编程风格。Lambda 表达式本质上是一个没有名字的函数,允许我们将代码作为一个对象进行传递。这种功能使得 Java 的语言表达能力得到...
标题中的"PyPI 官网下载 | lambda-project-creator-0.0.4.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的项目,名为`lambda-project-creator`,版本为0.0.4,且已打包成tar.gz格式。PyPI是Python社区...
标题中的“PyPI 官网下载 | cdk-lambda-layer-zip-0.0.4.tar.gz”表明这是一个从Python Package Index(PyPI)官方源下载的软件包,名为"cdk-lambda-layer-zip",版本号为0.0.4,并且已经被打包成tar.gz格式。...
标题中的"PyPI 官网下载 | aws-lambda-rest-api-1.0.7.tar.gz"指的是一个在Python Package Index(PyPI)上发布的开源软件包。PyPI是Python开发者发布自己编写的Python模块和库的地方,使得全球的Python用户可以方便...
借助aws-lambda-go-api-proxy,可以轻松运行使用框架编写的Golang API,例如使用AWS Lambda的和Amazon API Gateway编写的框架。 入门 第一步是安装所需的依赖项 # First, we install the Lambda go libraries $ go ...
aws-lambda-local, 在本地运行自动气象站的Lambda函数 aws-lambda-local在本地运行 AWS Lambda函数 ! 最轻量的库- 没有外部依赖关系。 少于 200行代码。Windows,Mac和Linux测试 !安装npm install -g aws-lambda-...
aws-lambda-send-ses-email, 使用Amazon发送电子邮件的AWS Lambda函数 aws-lambda-send-ses-email使用Amazon发送电子邮件的AWS Lambda函数。这个功能的主要目的是提供一个服务器端后端来发送来自 static 网站的电子...
《Python库aws-cdk.aws-lambda-event-sources-0.31.0:构建云原生应用的强大工具》 在当今的IT行业中,云计算已经成为了技术发展的主流趋势,而AWS(Amazon Web Services)作为全球领先的云服务提供商,其提供的CDK...
《Python库深度解析:cdk-lambda-extensions-0.1.99》 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,帮助我们高效地完成各种任务。今天我们将聚焦于一个名为"cdk-lambda-extensions"的Python库...
《PyPI上的lambda-notebook-0.6.8.tar.gz:Python在云原生环境中的分布式探索》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了丰富的Python库供用户下载和使用。标题提到的“lambda-notebook-...
《PyPI官网下载 | lambda-layer-0.0.4.tar.gz——Python库解析与应用》 PyPI(Python Package Index)是Python社区的核心资源库,它提供了大量的Python库供开发者下载和使用。"lambda-layer-0.0.4.tar.gz" 是一个在...