@FunctionalInterface
interface StringConsumer extends Consumer<String> {
@Override
public default void accept(String s) {
System.out.println(s.toUpperCase());
}
void print(String s);
}
public class Test {
public static void main(String[] args) {
StringConsumer stringConsumerImpl= s -> System.out.println(s.toLowerCase());
List<String> list = Arrays.asList("Dr", "Mr", "Miss", "Mrs");
list.forEach(stringConsumerImpl);
}
}
输出:DR MR MISS MRS
所以这段代码对我来说真的很奇怪。我实际上提供了打印方法的实现,但当我运行代码时,它实际上使用了默认方法的实现。
我期望打印实现能够工作。编辑:当从 StringConsumer 中删除打印方法时,它会导致主方法出现编译错误