JAVA8新特性 第三季 方法引用與構造器引用

2021-08-07 04:13:21 字數 2336 閱讀 3846

二構造器引用

三陣列應用

當要傳遞給lambda體的操作,已經有實現的方法了,可以使用方法引用。

注意:實現抽象方法的引數列表,必須與方法引用方法的引數列表保持一致!

也可以把 方法引用 理解為lambda表示式的另外一種表現形式

語法格式:使用操作符 」 :: 」 將方法名和物件或者類的名字分隔開來

物件 :: 例項方法名

類名 :: 靜態方法名

類名 :: 例項方法名

例如:

1. (x) -> system.out.println(x); 等同於 system.out::println;

2. binaryoperator bo = (x, y) -> math.pow(x, y); 等同於 binaryoperator bo = math::pow;

第乙個案例:

// 1.物件 :: 例項方法名

@test

public

void

test1()

執行結果:

hello lamdba

---------------------------

hello method reference

---------------------------

hello method reference println()

第二個案例:

// 1.物件 :: 例項方法名

@test

public

void

test2()

執行結果:

林青霞

--------------------

林青霞--------------------

28

// 2.類名 :: 靜態方法名

@test

public void test3()

執行結果:

24

---------------------

89---------------------

0.8718820391381332

// 3.類名 :: 例項方法名

@test

public void test4()

執行結果:

false

--------------

true

--------------

測試方法引用!!!

--------------

測試方法引用!!!

與函式式介面相結合,自動與函式式介面中方法相容。 可以把構造器引用賦值給定義的方法,與構造器引數 列表要與介面中抽象方法的引數列表一致!

語法格式:classname :: new

注意點:構造器引用的引數列表, 必須與函式式介面中抽象方法的引數列表保持一致

@test

public void test1()

執行結果:

employee

---------------------

employee

------------------------

*************************===

冬瓜--------------------

employee

@test

public void test3()

執行結果:

employee

employee

employee

employee

employee

-----------------------

employee

employee

employee

employee

employee

-----------------------

1528

2940

500------------------------

1528

2940

500

語法格式:tyep :: new

// 陣列引用

@test

public

void test2()

執行結果:

90

Java8 新特性 方法引用 一

package cn.com.zq.demo03.reference.test03.reference 方法引用 練習 使用系統已經存在的 方法 進行引用 為什麼要有方法引用?主要是對lambda表示式的優化 當 中 已經存在 對應的類 對應的物件 對應的this 對應的super 的時候 我們可以...

java8 靜態方法引用

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

Java8之方法引用

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