深入理解java1.8之supplier
更新時間:2019年12月13日 11:27:25 作者:李耦合
這篇文章主要介紹了深入理解java1.8之supplier,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
supplier也是是用來創(chuàng)建對象的,但是不同于傳統(tǒng)的創(chuàng)建對象語法:new,看下面代碼:
public class TestSupplier {
private int age;
TestSupplier(){
System.out.println(age);
}
public static void main(String[] args) {
//創(chuàng)建Supplier容器,聲明為TestSupplier類型,此時并不會調(diào)用對象的構(gòu)造方法,即不會創(chuàng)建對象
Supplier<TestSupplier> sup= TestSupplier::new;
System.out.println("--------");
//調(diào)用get()方法,此時會調(diào)用對象的構(gòu)造方法,即獲得到真正對象
sup.get();
//每次get都會調(diào)用構(gòu)造方法,即獲取的對象不同
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ù)代碼和官方注釋,我的個人理解:
1.supplier是個接口,有一個get()方法
2.語法 :
Supplier<TestSupplier> sup= TestSupplier::new;
3.每次調(diào)用get()方法時都會調(diào)用構(gòu)造方法創(chuàng)建一個新對象。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實戰(zhàn)玩具商城的前臺與后臺實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+JSP+SSM+Springboot+Jsp+maven+Mysql實現(xiàn)一個玩具商城系統(tǒng),大家可以在過程中查缺補漏,提升水平2022-01-01
Java的Spring框架下RMI與quartz的調(diào)用方法
這篇文章主要介紹了Java的Spring框架下RMI與quartz的調(diào)用方法,Spring是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-11-11
@Valid 校驗無效,BindingResult未獲得錯誤的解決
這篇文章主要介紹了@Valid 校驗無效,BindingResult未獲得錯誤的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10

