`

Lambda Expression - Supplier

    博客分类:
  • FP
 
阅读更多

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

 

Supplier

Supplier表示结果的供应者

 

e.g.

package org.fool.java8;

import java.util.function.Supplier;

public class SupplierTest {
    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 Person createPerson(Supplier<Person> supplier) {
        return supplier.get();
    }

    public static void main(String[] args) {
        Supplier<String> supplier = String::new;
        System.out.println(supplier.get().getClass());

        Person person = createPerson(() -> new Person("zhangsan", 18));
        System.out.println(person);
    }
}

 Console Output

class java.lang.String
Person{name='zhangsan', age=18}

 

 

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

相关推荐

    Lambda表达式测试demo

    5. 使用`Supplier`接口创建新的对象,不接受参数,但返回一个值。 6. `Stream API`结合Lambda表达式进行数据处理,如`map`, `filter`, `reduce`等操作。 通过对这个测试代码的学习,你可以深入理解Lambda表达式的...

    java8中的Lambda表达式

    此外,Java 8 提供了一系列内置的函数式接口,如 `Consumer`(无返回值,只执行操作)、`Function`(将一个对象转换成另一个对象)和 `Supplier`(提供一个值,无需输入参数)。这些接口与 Stream API 结合使用,...

    lambda_expression

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

    java lambda入门到高级代码实例

    此外,Java 8引入的函数式接口,如`Runnable`、`Comparator`和`Supplier`,使得Lambda表达式可以无缝集成到已有的API中。比如,`Runnable`可以用作线程的运行体: ```java Runnable task = () -&gt; System.out....

    Anonymous_Object-Lamda_Expression:匿名对象和Lambda表达式

    Lambda表达式的核心是函数式接口,常见的函数式接口有`Consumer&lt;T&gt;`(消费型接口)、`Supplier&lt;T&gt;`(供应型接口)、`Function,R&gt;`(函数型接口)和`Predicate&lt;T&gt;`(断言型接口)等。这些接口在Java 8的`java.util....

    LambdaDojo:JJUG CCC 2013 秋季 - 项目 Lambda 动手材料

    Java 8提供了一些内置的函数式接口,如`Runnable`、`Callable`、`Consumer&lt;T&gt;`、`Supplier&lt;T&gt;`、`Function,R&gt;`等,开发者也可以自定义函数式接口。 2. **流(Stream)**:Lambda与Java 8的流API紧密相关,流API允许...

    Lambda表达式最佳实践

    6. **Lambda Expression尽可能简洁**: Lambda表达式的目的是简化代码,所以应尽量保持它们的简短和清晰。避免在Lambda体内包含复杂的逻辑,可以考虑将其拆分为单独的方法。 7. **使用方法引用**: 当Lambda体中...

    0202年了,还没有用上Java函数式编程!!!——Lambda表达式

    Lambda表达式的格式通常是`(parameters) -&gt; expression`或`(parameters) -&gt; { expression }`。下面列举了五种常见的Lambda表达式形式: 1. **无参数**: `( ) -&gt; expression` 2. **有单个参数**: `(parameter) -&gt; ...

    java类源码-lambda:学习java.util,java.util.function,java.util.stream下面的源码,只要上

    Lambda 表达式的语法结构是:`(parameters) -&gt; expression` 或 `(parameters) -&gt; { statements; }`。`java.util.function` 包下定义了多种预定义的 Functional Interfaces,如 `Function`、`Predicate`、`Consumer` ...

    Java Lambda 表达式详解及示例代码

    5. **Supplier**:无参数,返回类型T,用于提供对象。 这些接口使得在Java 8及更高版本中,可以更方便地使用Lambda表达式与Stream API进行函数式编程,大大提高了代码的灵活性和可维护性。 总之,Java Lambda...

    JAVA8新特性总结及案例.doc

    Lambda 表达式的语法形式为 `(parameters) -&gt; expression` 或 `(parameters) -&gt; { statements; }`。以下是 Lambda 的几个关键特性: - **可选类型声明**:Lambda 参数类型可以由上下文推断,不需要显式声明。 - **...

    Java 8函数式编程1

    Lambda表达式的语法简洁,例如 `(params) -&gt; expression`,其中`params`是参数列表,`-&gt;`是箭头符号,`expression`是函数体。Lambda表达式使得编写简洁的回调函数和处理集合变得更加方便。 4. **并行计算** Java ...

    JDK1.8 API 中文参考手册

    Java 8提供了一些内置的函数式接口,如`Runnable`、`Callable`、`Consumer`、`Supplier`、`Function`等,它们在处理函数式编程时非常有用。 ### 方法引用和构造器调用 方法引用允许直接引用已有方法,而不是通过...

    java-8-lambdas-exercises:Java 8 Lambdas练习

    它的语法形式是`(parameters) -&gt; expression`,其中`parameters`是输入参数(如果无参数,可以省略括号),`-&gt;`是箭头符号,表示参数与表达式之间的分隔,`expression`是函数体,即执行的操作。 2. **函数式接口** ...

    jdk1.8 api中文文档 jdk api 1.8_google.CHM

    JDK1.8提供了一些内置的函数式接口,如`Runnable`、`Callable`、`Consumer`、`Supplier`和`Function`等。开发者也可以自定义函数式接口,只要确保接口中只有一个抽象方法。 **3. 方法引用和构造器引用** 方法引用...

    Java8新特性尚硅谷-百度网盘

    (parameters) -&gt; expression ``` 或 ``` (parameters) -&gt; {statements;} ``` **示例**:假设有一个`Runnable`接口的实例化过程。 ```java Runnable r = new Runnable() { public void run() { System.out....

    Java8新特性.zip

    它采用箭头语法,如 `(args) -&gt; expression`,其中 `args` 是参数列表,`expression` 是函数体。Lambda表达式极大地简化了对集合的流式处理。 2. **函数式接口**:为了支持Lambda表达式,Java 8引入了函数式接口的...

    LINQ中文学习资料和LINQ 随身参考手册

    and more Query syntax versus lambda syntax, and mixed syntax queries Composition and projection strategies for complex queries All of LINQ’s 40-plus query operators How to write efficient LINQ to SQL...

    lambdas:与 NYC JUG Lambda 演示一起使用的示例代码

    在Java中,拉姆达表达式的语法通常为 `(parameters) -&gt; expression` 或 `(parameters) -&gt; { statements }`。这里的参数在括号内,箭头指向函数体,可以是一条表达式或一组语句。例如,以下是一个简单的拉姆达表达式...

    Java8指南编程开发技术共19页.pdf.zip

    Lambda表达式的语法形式为 `(parameters) -&gt; expression`,可以作为参数传递给方法,或者直接用作方法体。 2. **函数式接口**:为了支持Lambda表达式,Java 8引入了函数式接口的概念。这些接口只有一个抽象方法,...

Global site tag (gtag.js) - Google Analytics