重庆达渝仁科技官网:www.cqdyr.com 4 5 6 7 8 9 10 11 } }
interface I { void foo(); }
interface J { void foo(); }
上述代码Eclipse不会报错但是javac无法编译,javac认为 (I & J)不是一个函数式接口。 看起来javac工作正常, Eclipse处理这样的case还有问题。
@FunctionalInterface
Java 不会强制要求你使用@FunctionalInterface注解来标记你的接口是函数式接口, 然而,作为API作者, 你可能倾向使用@FunctionalInterface指明特定的接口为函数式接口, 这只是一个设计上的考虑, 可以让用户很明显的知道一个接口是函数式接口。
1 2 3 4 @FunctionalInterface
public interface SimpleFuncInterface { public void doWork(); }
如果你在一个不是函数式的接口使用@FunctionalInterface标记的话,会出现什么情况?编译时出错。
1 error: Unexpected @FunctionalInterface annotation 2 @FunctionalInterface 3 ^
4 I is not a functional interface
5 multiple non-overriding abstract methods found in interface I
Java 8函数式接口functional interface的秘密
重庆达渝仁科技官网:www.cqdyr.com4567891011}}interfaceI{voidfoo();}interfaceJ{voidfoo();}上述代码Eclipse不会报错但是javac无法编译,javac认为(I&J)不是一个
推荐度:
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
点击下载文档文档为doc格式