在 Maven 中,通过设置 maven.compiler.source 属性可以指定 Java 源代码的版本。然而,即使将 maven.compiler.source 设置为 1.7,使用 Java 8 编译器仍然可以成功编译 @FunctionalInterface 注解。
这是因为 @FunctionalInterface 注解是在 Java 8 引入的,并且兼容 Java 8 版本及更高版本的编译器。因此,即使使用 Java 8 编译器编译源代码时,即使你将 maven.compiler.source 设置为 1.7,编译器仍然可以正确处理和编译 @FunctionalInterface 注解。
需要注意的是,即使源代码版本低于 Java 8(如设置为 1.7),如果你使用了 Java 8 或更高版本引入的语言特性或功能,那么在编译时仍然需要使用与相应的语言特性兼容的编译器。