在Java中,方法引用可以用于接口。方法引用是Java 8引入的一种简化Lambda表达式的写法。它们可以用来表示已经存在的方法或者构造函数。方法引用可以用于接口,特别是当你需要将一个现有的方法作为Lambda表达式传递给高阶函数时。
以下是一些使用Java方法引用的示例:
- 引用静态方法:
Listnames = Arrays.asList("Alice", "Bob", "Charlie"); names.sort(String::compareToIgnoreCase);
- 引用实例方法(需要对象实例):
Listnames = Arrays.asList("Alice", "Bob", "Charlie"); names.sort((name1, name2) -> name1.compareToIgnoreCase(name2));
- 引用特定类型的任意对象的实例方法:
Listnames = Arrays.asList("Alice", "Bob", "Charlie"); names.sort(String::compareToIgnoreCase);
- 引用构造函数:
Listnames = Arrays.asList("Alice", "Bob", "Charlie"); List reversedNames = names.stream() .map(String::new) .collect(Collectors.toList());
在这些示例中,String::compareToIgnoreCase
是一个方法引用,它表示 String
类中的 compareToIgnoreCase
方法。当这个方法引用用作Lambda表达式的参数时,它可以替代一个匿名内部类或者实现接口的类。