我正在创建功能接口,并希望使用匿名实现重用默认方法。
public class JavaInterfaceTest {
public static void main(String[] args) {
FunctionalIntf fi = () -> {
System.out.println("In ananymus impl, trying to call default method");
// doInternal()
return "Hello";
};
fi.doFunction(); // How this line valid ?
fi.doInternal();
FunctionalIntf.doSomething();
}
}
@FunctionalInterface
interface FunctionalIntf {
String doFunction();
default void doInternal(){
System.out.println("In doInternal");
}
static void doSomething(){
System.out.println("In doSomething");
}
}
第3。在我的情况下返回一些有效/最佳实践,因为我无法处理返回的值。
答案 0 :(得分:0)
实现功能界面时,您有两个选项:
如果你使用lambda,就像你一样,你有静态/默认方法的默认实现以及抽象方法的实现。
如果使用内部类,则适用正常的覆盖规则。