`

Lambda Expression -Function

    博客分类:
  • FP
 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2424769

 

Function

Function是从T到R的一元函数映射,将参数T传递给一个函数,返回R,即 R = Function(T)


 

e.g.

package org.fool.java8;

import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.IntFunction;

public class FunctionTest {
    private static class Person {
        private String name;
        private Integer age;

        public Person(String name, Integer age) {
            this.name = name;
            this.age = age;
        }

        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 +
                    '}';
        }
    }

    private static String function(Person person, Function<Person, String> function) {
        return function.apply(person);
    }

    private static double intFunction(int i, IntFunction<Double> function) {
        return function.apply(i);
    }

    private static Person biFunction(String name, Integer age, BiFunction<String, Integer, Person> function) {
        return function.apply(name, age);
    }

    public static void main(String[] args) {
        String result1 = function(new Person("zhangsan", 18), Person::getName);
        System.out.println(result1);

        double result2 = intFunction(10, i -> i * 100.0d);
        System.out.println(result2);

        Person result3 = biFunction("wangwu", 38, Person::new);
        System.out.println(result3);
    }
}

 Console Output

zhangsan
1000.0
Person{name='wangwu', age=38}

 

 

 

 

  • 大小: 27.1 KB
分享到:
评论

相关推荐

    java8-lambda-expression-demo:演示lambda在Java 8中的用法

    本项目"java8-lambda-expression-demo"就是为了让开发者深入理解并实践这些新特性。 Lambda表达式允许我们以一种更简洁的方式定义匿名函数,即没有名字的函数。这种表达式的形式是`()-&gt;{主体代码}`,其中箭头左侧...

    lambda-change-java.rar_java lambda_lambda

    函数式接口是指只有一个抽象方法的接口,如`java.util.function.Function`, `Runnable`, `Comparator`等。Lambda表达式可以被隐式转换为这些接口的实例,这使得它们可以在任何需要该接口的地方使用。 在Java 8中,...

    lambda-java-translator

    paramN) -&gt; expression ``` 其中,`(param1, param2, ... paramN)`是参数列表,`-&gt;`是箭头符号,后面跟着的是函数体。例如,一个接受两个整数并返回它们之和的Lambda表达式可以写作 `(int a, int b) -&gt; a + b`。 ...

    Java 8 lambda表达式

    Lambda表达式的一般形式是`param -&gt; expression`,其中`param`代表参数列表,`-&gt;`是lambda运算符,`expression`是函数体。对于没有参数的lambda,可以省略参数的括号;如果只有一个参数,也可以省略括号。例如: -...

    Lambda表达式.docx

    Lambda表达式的形式为:`(parameters) -&gt; expression`,其中`parameters`是函数参数,`-&gt;`是箭头符号,表示参数列表与函数体的分隔,`expression`是函数体,可以是单行代码或一个代码块。 2. **Lambda表达式的使用...

    KUP-Lambda-Assignment

    这里的`parameters`是输入参数(如果有的话),`-&gt;`是箭头符号,表示参数列表与实现体之间的分隔,`expression`是Lambda表达式执行的代码块。例如,一个简单的Lambda表达式 `(int a, int b) -&gt; a + b` 表示一个接受...

    Lambda表达式测试demo

    Lambda表达式是Java 8引入的一种新特性,它极大地简化了函数式编程,使得代码更加简洁、易读。Lambda表达式本质上是匿名函数,可以理解为没有名字的函数,但功能与普通方法相同,能够被赋值给变量,也可以作为参数...

    Lambda表达式.zip

    例如,`Function` 接口有一个 `apply` 方法,我们可以通过Lambda表达式实现它: ```java Function, Integer&gt; lengthFinder = s -&gt; s.length(); ``` 这里,`s -&gt; s.length()` 是一个Lambda表达式,它接受一个...

    Python-一个lambda演算的解释器实现

    def evaluate(expression, environment): # 实现归约逻辑 pass ``` 在这个框架下,你可以逐步实现各种归约策略,例如正常形式归约,以及处理嵌套函数和复杂应用的情况。 ### 遇到的问题 在实现过程中,可能会...

    Java 1.8 lambda表达式示例源码

    这里,filter()方法接受一个谓词(Predicate),map()方法接受一个函数(Function),它们都是函数式接口,因此可以使用lambda表达式。 总而言之,Java 1.8的lambda表达式使得代码更简洁、更易读,它与函数式接口和...

    Lambda表达式学习,总结,速查手册大全.rar

    其基本语法格式为:(parameters) -&gt; expression,其中parameters是输入参数(可选),expression是函数体。例如,一个简单的Lambda表达式 `(int a, int b) -&gt; a + b` 表示接受两个整数并返回它们的和。 二、Lambda...

    精通lambda表达式: java多核编程

    其中,`parameters`是输入参数(如果无参数,可以省略括号),`-&gt;`是箭头符号,`expression`或`{ statements }`是Lambda体,即实际执行的代码。例如,一个简单的Lambda表达式 `(int a, int b) -&gt; a + b` 表示了一个...

    java8中的Lambda表达式

    Java 8 中的 Lambda 表达式是语言的重大更新,它引入了函数式编程的概念,使得代码更加简洁、易读。Lambda 表达式的主要目的是简化处理匿名内部类的情况,尤其是当这些类只需要一个方法时。 在传统的 Java 编程中,...

    lambda-second

    2. **Lambda表达式语法**:Lambda表达式的语法通常形式为`(parameters) -&gt; expression`或`(parameters) -&gt; { statements }`。参数括在圆括号内,箭头后是单个表达式或代码块。 3. **方法引用**:当Lambda体可以直接...

    java-lambda-expressions:Java 8中Lambda表达式的一些示例

    Lambda表达式的基本形式是`(parameters) -&gt; expression`。参数列表用括号括起来,后面跟着箭头`-&gt;`,然后是表达式或代码块。例如,一个接受两个整数并返回它们之和的Lambda表达式可以写作`(int a, int b) -&gt; a + b`...

    Java Lambda表达式

    Java中的Lambda表达式是Java 8引入的一项重要特性,它为编写简洁、高效的代码提供了新的方式。Lambda表达式是函数式编程的一个核心概念,允许我们将函数作为方法的参数或者作为一个独立的对象来使用。这种能力使得...

    Java lambda表达式和JVM字节码功能详解.pdf

    在Java字节码中,我们可以看到Lambda表达式是如何被转化为一个内部类`InnerClass$1`的,这个内部类实现了`Function`接口并重写了`apply`方法。字节码指令如`new`, `dup`, `invokespecial`和`putfield`等用于创建并...

    lambda.rar stream

    - 使用Function接口进行映射操作,如将字符串转换为整数。 - 使用Predicate接口进行过滤操作,如找出年龄大于30的人。 - 使用Consumer接口进行消费操作,如打印元素信息。 "方法引用"是Lambda表达式的延伸,它允许...

    lambda_expression

    在 `lambda_expression-master` 文件中,可能包含了更多关于 Lambda 使用示例、实践案例以及如何在实际项目中有效利用 Lambda 进行编程的详细资料。通过学习和实践,你可以更好地理解和应用这一强大的功能。

Global site tag (gtag.js) - Google Analytics