Java方法引用可以用于Lambda表達式。方法引用是Lambda表達式的一種簡化寫法,它允許你直接引用已經存在的方法或構造函數。方法引用可以分為四種類型:
靜態方法引用:使用類名::靜態方法名的形式表示。例如,List::sort
是一個靜態方法引用,它引用了 List
類中的 sort
方法。
實例方法引用:使用實例對象::實例方法名的形式表示。例如,String::substring
是一個實例方法引用,它引用了 String
類中的 substring
方法。
任意對象的實例方法引用:使用類名::實例方法名的形式表示。例如,Object::toString
是一個任意對象的實例方法引用,它引用了 Object
類中的 toString
方法。
構造方法引用:使用類名::new的形式表示。例如,ArrayList::new
是一個構造方法引用,它引用了 ArrayList
類的構造方法。
在Lambda表達式中,你可以使用方法引用來替換匿名內部類。例如,假設你有一個接口 Comparator<T>
,你可以使用方法引用來簡化Lambda表達式的編寫:
// 使用Lambda表達式
Collections.sort(list, (a, b) -> Integer.compare(a.length(), b.length()));
// 使用方法引用
Collections.sort(list, Comparator.comparingInt(String::length));
在這個例子中,我們使用了Lambda表達式和方法引用來實現相同的功能。方法引用使得代碼更簡潔易讀。