如何在 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]

更新時間:2020 年 7 月 11 日

837 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.