在Java中,方法引用是一種簡化Lambda表達式的寫法。它允許你引用已經存在的方法或構造函數。方法引用定義的語法如下:
::靜態方法名
::實例方法名
::類方法名
::構造方法名
以下是各種類型的方法引用的示例:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort(String::compareToIgnoreCase);
這里,我們使用了String::compareToIgnoreCase
靜態方法引用來對字符串列表進行排序。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort((name1, name2) -> name1.length() - name2.length());
// 使用實例方法引用簡化代碼
names.sort(String::length);
在這個例子中,我們使用了String::length
實例方法引用來按字符串長度對列表進行排序。
class MyClass {
public static int add(int a, int b) {
return a + b;
}
}
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.sort((a, b) -> MyClass.add(a, b));
// 使用類方法引用簡化代碼
numbers.sort(MyClass::add);
這里,我們使用了MyClass::add
類方法引用來對整數列表進行排序,通過調用MyClass
類的靜態方法add
來計算兩個整數的和。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> uppercasedNames = names.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
在這個例子中,我們使用了String::toUpperCase
構造方法引用來將字符串列表中的每個元素轉換為大寫形式。