【JDK8之旅】——Supplier

简介: 【JDK8之旅】——Supplier

引言


本来计划总结一下java8中的方法引用,但是在使用方法引用的过程中,我们会不断的见到这个内建的函数式接口,首先我们来看一下源码

package java.util.function;
/**
 * Represents a supplier of results.
 * 这是一个提供结果的函数接口.
 * 特点:
 * (1)只有返回值
 * (2)没有输入参数
 * <p>There is no requirement that a new or distinct result be returned each
 * time the supplier is invoked.
 *
 * get()方法被调用时,对于一定要new出一个新对象 or 生成一个和之前结果不同的值 这两方面,都没有强制规定.
 * 这一接口函数的功能方法为:get()
 *
 * <p>This is a <a href="package-summary.html">functional interface</a>
 * whose functional method is {@link #get()}.
 *
 * @param <T> the type of results supplied by this supplier
 *
 * @since 1.8
 */
@FunctionalInterface
public interface Supplier<T> {
    /**
     * Gets a result.
     *
     * @return a result
     */
    T get();
}


对应源码中的注释,我大概这样理解:

使用demo:

public void test(){
        //创建Supplier容器,声明为TestSupplier类型,此时并不会调用对象的构造方法,即不会创建对象
    Supplier<RobotUser> user=RobotUser::new;
        //调用get()方法,此时会调用对象的构造方法,即获得到真正对象
    RobotUser user1 = user.get();
  }


每次调用get()方法的时候才会创建对象。并且每次调用创建的对象都不一样;


这个内建的函数借口,在下面分享方法引用的时候,频繁出现1

目录
相关文章
|
6月前
|
API
JDK8函数式接口之Supplier
JDK8函数式接口之Supplier
99 0
|
消息中间件 前端开发 JavaScript
软软猿妹问我JDK中眼花缭乱的Function/Consumer/Supplier/Predicate?(下)
哈喽,大家好,我是指北君。 JDK中有许多函数式接口,也会有许多方法会使用函数式接口作为参数,同时在各种源码中也大量使用了这些方法,那么我们在实际工作中应该如何使用!我们就来盘一盘,这样也有助于写出优雅的代码,使我们在阅读源码时事半功倍。
软软猿妹问我JDK中眼花缭乱的Function/Consumer/Supplier/Predicate?(下)
软软猿妹问我JDK中眼花缭乱的Function/Consumer/Supplier/Predicate?(上)
哈喽,大家好,我是指北君。 JDK中有许多函数式接口,也会有许多方法会使用函数式接口作为参数,同时在各种源码中也大量使用了这些方法,那么我们在实际工作中应该如何使用!我们就来盘一盘,这样也有助于写出优雅的代码,使我们在阅读源码时事半功倍。
软软猿妹问我JDK中眼花缭乱的Function/Consumer/Supplier/Predicate?(上)
|
2月前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
313 3
|
3月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
57 1
|
3月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
690 4
|
4月前
|
Java Linux
Linux复制安装 jdk 环境
Linux复制安装 jdk 环境
108 3
|
3天前
|
Ubuntu Java
Ubuntu之jdk安装
以下是Ubuntu之jdk安装的详细内容
12 0
|
1月前
|
Oracle Java 关系型数据库
jdk17安装全方位手把手安装教程 / 已有jdk8了,安装JDK17后如何配置环境变量 / 多个不同版本的JDK,如何配置环境变量?
本文提供了详细的JDK 17安装教程,包括下载、安装、配置环境变量的步骤,并解释了在已有其他版本JDK的情况下如何管理多个JDK环境。
652 0
|
3月前
|
Java 开发工具
开发工具系列 之 同一个电脑上安装多个版本的JDK
这篇文章介绍了如何在一台电脑上安装和配置多个版本的JDK,包括从官网下载所需JDK、安装过程、配置环境变量以及如何查看和切换当前使用的JDK版本,并提到了如果IDEA和JDK版本不兼容时的解决方法。
开发工具系列 之 同一个电脑上安装多个版本的JDK