您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用Java的方法引用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
??方法引用是用來直接訪問類或者實例的已經存在的方法或者構造方法。方法引用提供了一種引用而不執行方法的方式,它需要由兼容的函數式接口構成的目標類型上下文。計算時,方法引用會創建函數式接口的一個實例。
方法引用通過方法的名字來指向一個方法。
方法引用可以使語言的構造更緊湊簡潔,減少冗余代碼。
方法引用使用一對冒號 :: 。
Java 8 中我們可以通過 :: 關鍵字來訪問類的構造方法,對象方法,靜態方法。
類型 | 方法引用 | Lambda表達式 |
---|---|---|
靜態方法引用 | 類名::staticMethod | (args) -> 類名.staticMethod(args) |
實例方法引用 | inst::instMethod | (args) -> inst.instMethod(args) |
對象方法引用 | 類名::instMethod | (inst,args) -> 類名.instMethod(args) |
構建方法引用 | 類名::new | (args) -> new 類名(args) |
為了更好的演示方法引用的使用方法,特引入了基礎代碼。
@Data @ApiModel class DataInfo{ private String name; private String info; private String welcome; public static DataInfo create( Supplier<DataInfo> supplier) { return supplier.get(); } public static void getDataInfo( DataInfo dataInfo) { System.out.println("DataInfo : " + dataInfo.toString()); } public void getWebNameinfo( DataInfo dataInfo) { System.out.println(" WebName " + dataInfo.getName()); } public void getWelcomeInfo() { System.out.println("welcome " + this.toString()); } }
靜態方法引用:它的語法是Class::static_method
dataInfoList.forEach(DataInfo::getDataInfo);
特定對象的方法引用:它的語法是instance::method實例
dataInfoList.forEach( DataInfo.create( DataInfo::new )::getWebNameinfo );
特定類的任意對象的方法引用:它的語法是Class::method
dataInfoList.forEach(DataInfo::getWelcomeInfo);
構造器引用:它的語法是Class::new。
DataInfo dataInfo = DataInfo.create(DataInfo::new);
以上是“如何使用Java的方法引用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。