例如,我有这个接口:
package tester; public interface Calculator{ public int calculate(int a,int b); }
要么
package tester; @FunctionalInterface public interface Calculator{ public int calculate(int a,int b); }
我也可以将第一个视为功能界面.例如 :
package tester; public class A { int a; int b; int sum; A(Calculator c,int e, int d){ a=e; b=d; sum =c.calculate(a, b); } int get(){ return sum; } }
班长
package tester; public class runner { public static void main(String a[]){ System.out.println(new A((x,b)-> (x+b),1,2).get()); } }
代码可以使用或不使用注释,那么为什么注释呢?为什么不能说任何具有单一方法的接口都可以作为功能接口?
FuntionalInterface注释只是编译器的提示,是的,任何具有一个抽象方法的接口都可以是一个功能接口.注释可能有助于检测功能界面中的错误.例如:
@FunctionalInterface public interface ExampleInterface { }
会导致编译错误.