日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

方法引用_通过对象名引用成员方法

發布時間:2024/4/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 方法引用_通过对象名引用成员方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

方法引用符

雙冒號:: 為引用運算符,而它所在的表達式被稱為方法引用。如果Lambda要表達的函數方案已經存在于某個方
法的實現中,那么則可以通過雙冒號來引用該方法作為Lambda的替代者。

語義分析

例如上例中, System.out 對象中有一個重載的println(String) 方法恰好就是我們所需要的。那么對于
printString 方法的函數式接口參數,對比下面兩種寫法,完全等效:


Lambda表達式寫法: s -> System.out.println(s);
方法引用寫法: System.out::println
第一種語義是指:拿到參數之后經Lambda之手,繼而傳遞給System.out.println 方法去處理。
第二種等效寫法的語義是指:直接讓System.out 中的println 方法來取代Lambda。兩種寫法的執行效果完全一
樣,而第二種方法引用的寫法復用了已有方案,更加簡潔。


注:Lambda 中 傳遞的參數 一定是方法引用中 的那個方法可以接收的類型,否則會拋出異常

推導與省略

如果使用Lambda,那么根據“可推導就是可省略”的原則,無需指定參數類型,也無需指定的重載形式——它們都
將被自動推導。而如果使用方法引用,也是同樣可以根據上下文進行推導。

函數式接口是Lambda的基礎,而方法引用是Lambda的孿生兄弟。

package com.learn.demo05.ObjectMethodReference; /*定義一個打印的函數式接口*/ @FunctionalInterface public interface Printable {//定義字符串的抽象方法void print(String s); } package com.learn.demo05.ObjectMethodReference;public class MethodRerObject {//定義一個成員方法,傳遞字符串,把字符串按照大寫輸出public void printUpperCaseString(String str){System.out.println(str.toUpperCase());} } package com.learn.demo05.ObjectMethodReference; /*通過對象名引用成員方法使用前提是對象名是已經存在的,成員方法也是已經存在就可以使用對象名來引用成員方法*/ public class Demo01ObjectMethodReference {//定義一個方法,方法的參數傳遞Printable接口public static void printString(Printable p){p.print("Hello");}public static void main(String[] args) {//調用printString方法,方法的參數Printable是一個函數式接口,所以可以傳遞Lambda表達式printString((s)->{//創建MethodRerObject對象MethodRerObject obj = new MethodRerObject();//調用MethodRerObject對象中的成員方法printUpperCaseString,把字符串按照大寫輸出obj.printUpperCaseString(s);});/*使用方法引用優化Lambda對象是已經存在的MethodRerObject成員方法也是已經存在的printUpperCaseString所以我們可以使用對象名引用成員方法*///創建MethodRerObject對象MethodRerObject obj = new MethodRerObject();printString(obj::printUpperCaseString);} }

?

總結

以上是生活随笔為你收集整理的方法引用_通过对象名引用成员方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。