深入理解java1.8之supplier
supplier也是是用來(lái)創(chuàng)建對(duì)象的,但是不同于傳統(tǒng)的創(chuàng)建對(duì)象語(yǔ)法:new,看下面代碼:
public class TestSupplier {
private int age;
TestSupplier(){
System.out.println(age);
}
public static void main(String[] args) {
//創(chuàng)建Supplier容器,聲明為T(mén)estSupplier類型,此時(shí)并不會(huì)調(diào)用對(duì)象的構(gòu)造方法,即不會(huì)創(chuàng)建對(duì)象
Supplier<TestSupplier> sup= TestSupplier::new;
System.out.println("--------");
//調(diào)用get()方法,此時(shí)會(huì)調(diào)用對(duì)象的構(gòu)造方法,即獲得到真正對(duì)象
sup.get();
//每次get都會(huì)調(diào)用構(gòu)造方法,即獲取的對(duì)象不同
sup.get();
}
}
輸出結(jié)果:
--------
0
0
官方代碼及注釋:
/**
* Represents a supplier of results.
*
* <p>There is no requirement that a new or distinct result be returned each
* time the supplier is invoked.
*
* <p>This is a <a href="package-summary.html" rel="external nofollow" >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();
}
根據(jù)代碼和官方注釋,我的個(gè)人理解:
1.supplier是個(gè)接口,有一個(gè)get()方法
2.語(yǔ)法 :
Supplier<TestSupplier> sup= TestSupplier::new;
3.每次調(diào)用get()方法時(shí)都會(huì)調(diào)用構(gòu)造方法創(chuàng)建一個(gè)新對(duì)象。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Spring Boot不同的環(huán)境使用不同的配置方法
下面小編就為大家分享一篇基于Spring Boot不同的環(huán)境使用不同的配置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
詳解如何為SpringBoot項(xiàng)目中的自定義配置添加IDE支持
這篇文章主要介紹了詳解如何為SpringBoot項(xiàng)目中的自定義配置添加IDE支持,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Java Maven settings.xml中私有倉(cāng)庫(kù)配置詳解
這篇文章主要介紹了詳解Maven settings.xml配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-10-10
Spring Boot項(xiàng)目打包指定包名實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Spring Boot項(xiàng)目打包指定包名實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
IDEA無(wú)法使用終端terminal問(wèn)題的解決方案
這篇文章主要介紹了IDEA無(wú)法使用終端terminal問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
簡(jiǎn)單了解Java多態(tài)向上轉(zhuǎn)型相關(guān)原理
這篇文章主要介紹了簡(jiǎn)單了解Java多態(tài)向上轉(zhuǎn)型相關(guān)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
解釋為什么Java中“1000==1000”為false而”100==100“為true
在日常編程中,我們經(jīng)常遇到一些看似簡(jiǎn)單卻隱藏著復(fù)雜邏輯的問(wèn)題,這篇文章主要介紹了解釋為什么Java中“1000==1000”為false而”100==100“為true,需要的朋友可以參考下2024-01-01

