jdk8 方法引用

2021-07-29 13:41:35 字數 1293 閱讀 1134

方法引用的形式

方法引用的標準形式是:類名::方法名。(注意:只需要寫方法名,不需要寫括號)

有以下四種形式的方法引用:

型別 示例

引用靜態方法 containingclass::staticmethodname

引用某個物件的例項方法 containingobject::instancemethodname

引用某個型別的任意物件的例項方法 containingtype::methodname

引用構造方法 classname::new

下面我們通過乙個小demo來分別學習這幾種形式的方法引用:

student 類:

public

class student

public string getname()

public

void

setname(string name)

public

intgetscore()

public

void

setscore(int score)

public

static

intcoomparestudentbyscore(student student1,student student2)

public

static

intcoomparestudentbyname(student student1,student student2)

public

intcomparescore(student student)

}

studentcomparator 比較器:

public

class studentcomparator

public

intcoomparestudentbyname(student student1,student student2)

}

測試類:methodreferencetest

* created by ceaserwang on

2017/1/15.

*/public class

methodreferencetest

public string tostring2(string str, functionfunction)

public static void main(string args)

}

jdk8 方法引用 lambda 匿名內部類

匿名內部類 lambda和方法引用其實是相通的,從匿名內部類到lambda到方法引用是乙個進化的過程,是乙個簡化的過程,更加是乙個從抽象的過程。作用都是實現介面方法,換句話說就是實現介面 只是這個介面只有乙個抽象方法。匿名內部類省去了實現類,直接new 介面名 沒有實現類名,實際就是實現且建立了乙個...

jdk8 之方法引用

方法引用 實際上是lamda函式的語法糖 有時候並不適用 我們可以講方法引用看做乙個函式指標.function pointer 方法引用分為4類 類名 靜態方法名 建立乙個類 public class student public void setname string name public in...

jdk8 方法引用 或者說雙冒號

還是本著先學習的態度看看這個特性長什麼樣。然後看看到底代表了什麼。一般用在什麼地方。第一種 static方法的引用 就是你如果有個類有個靜態方法。你可以直接寫 containingclass staticmethodname 但是我有個疑問。這麼寫了之後。這個整體表示的是啥。如果照以前contain...