如何在 Java 中使用方法引用實現任意物件的例項方法?
方法引用是 Java 8 中的一項新特性,它與Lambda 表示式相關。它允許我們在不執行它們的情況下引用建構函式和方法。方法引用和Lambda 表示式類似,因為它們都需要一個目標型別,該型別由相容的功能介面組成。
語法
Class :: instanceMethodName
示例
import java.util.*;
import java.util.function.*;
public class ArbitraryObjectMethodRefTest {
public static void main(String[] args) {
List<Person> persons = new ArrayList<Person>();
persons.add(new Person("Raja", 30));
persons.add(new Person("Jai", 25));
persons.add(new Person("Adithya", 20));
persons.add(new Person("Surya", 35));
persons.add(new Person("Ravi", 32));
List ages = ArbitraryObjectMethodRefTest.listAllAges(persons, Person :: getAge);
System.out.println("Printing out all ages:
" + ages);
}
private static List listAllAges(List person, Function<Person, Integer> f) {
List result = new ArrayList();
person.forEach(x -> result.add(f.apply((Person)x)));
return result;
}
private static class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}輸出
Printing out all ages: [30, 25, 20, 35, 32]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言教程
C++ 語言教程
C#
MongoDB
MySQL
JavaScript
PHP