Java8中的 方法引用 「雙冒號」

2021-09-24 17:02:40 字數 662 閱讀 5239

類名::方法名

注意是方法名哦,後面沒有括號「()」噠。為啥不要括號,因為這樣的是式子並不代表一定會呼叫這個方法。這種式子一般是用作lambda表示式,lambda有所謂懶載入嘛,不要括號就是說,看情況呼叫方法。

例如表示式:

person -> person.getage();

可以替換成

person::getage

表示式() -> new hashmap<>();

可以替換成

hashmap::new

這種[方法引用]或者說[雙冒號運算]對應的引數型別是functiont表示傳入型別,r表示返回型別。比如表示式person -> person.getage(); 傳入引數是person,返回值是person.getage(),那麼方法引用person::getage就對應著function型別。

下面這段**,進行的操作是,把list裡面的string全部大寫並返還新的arraylist,在前面的例子中我們是這麼寫的:

@test

public void converttest()

現在也可以被替換成下面的寫法:

@test

public void converttest()

java8 靜態方法引用

靜態方法引用 如果函式式介面的實現恰好可以通過呼叫乙個靜態方法完成 就可以使用靜態方法引用 只是呼叫 不做其他處理 classname exmaple1 function todo add function.date 2017年9月8日 下午10 39 06 author lelonta versi...

Java8之方法引用

方法引用的形式 方法引用的標準形式是 類名 方法名。注意 只需要寫方法名,不需要寫括號 有以下四種形式的方法引用 型別示例 引用靜態方法 containingclass staticmethodname 引用某個物件的例項方法 containingobject instancemethodname ...

java 8 方法引用

如果lambda 表示式的 塊只有一行 程式就可以省略表示式 塊的花括號,不僅如此,如果只有一行 還可以使用方法的引用和構造器的引用 下面為四種引用的例項 public class function functionalinte ce inte ce mytest3 functionalinte c...