java方法引用能用于接口嗎

小樊
81
2024-11-19 22:46:58

在Java中,方法引用可以用于接口。方法引用是Java 8引入的一種簡(jiǎn)化Lambda表達(dá)式的寫法。它們可以用來(lái)表示已經(jīng)存在的方法或者構(gòu)造函數(shù)。方法引用可以用于接口,特別是當(dāng)你需要將一個(gè)現(xiàn)有的方法作為L(zhǎng)ambda表達(dá)式傳遞給高階函數(shù)時(shí)。

以下是一些使用Java方法引用的示例:

  1. 引用靜態(tài)方法:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort(String::compareToIgnoreCase);
  1. 引用實(shí)例方法(需要對(duì)象實(shí)例):
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort((name1, name2) -> name1.compareToIgnoreCase(name2));
  1. 引用特定類型的任意對(duì)象的實(shí)例方法:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort(String::compareToIgnoreCase);
  1. 引用構(gòu)造函數(shù):
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> reversedNames = names.stream()
                                   .map(String::new)
                                   .collect(Collectors.toList());

在這些示例中,String::compareToIgnoreCase 是一個(gè)方法引用,它表示 String 類中的 compareToIgnoreCase 方法。當(dāng)這個(gè)方法引用用作Lambda表達(dá)式的參數(shù)時(shí),它可以替代一個(gè)匿名內(nèi)部類或者實(shí)現(xiàn)接口的類。

0