本文主要是介绍【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
这篇关于【JDK8之旅】——Supplier的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!