在 Java 中,方法引用(Method Reference)是一種簡化 Lambda 表達式的寫法。它允許你直接引用已經存在的方法或構造函數。方法引用的應用場景主要包括以下幾點:
String::toString
方法引用。List<String> list = Arrays.asList("Hello", "World");
Predicate<String>
接口過濾字符串列表時,可以使用 String::isEmpty
方法引用。List<String> filteredList = list.stream()
.filter(String::isEmpty)
.collect(Collectors.toList());
public interface Handler {
void handle();
}
public class StringHandler implements Handler {
private String data;
public StringHandler(String data) {
this.data = data;
}
@Override
public void handle() {
System.out.println("Handling string: " + data);
}
}
public class Main {
public static Handler getHandler(String type) {
switch (type) {
case "string":
return new StringHandler(type);
// 其他類型處理
default:
throw new IllegalArgumentException("Unknown type");
}
}
public static void main(String[] args) {
Handler handler = getHandler("string");
handler.handle();
}
}
Arrays::sort
對整數數組進行排序。int[] arr = {3, 1, 4, 1, 5, 9};
Arrays.sort(arr);
Person::getName
引用 Person
類的 getName
方法。List<Person> people = Arrays.asList(new Person("Alice"), new Person("Bob"));
people.forEach(person -> System.out.println(Person::getName));
總之,方法引用在 Java 中提供了一種簡潔、易讀的方式來表示 Lambda 表達式,特別是在處理集合、函數式接口和工廠方法等場景中。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。