将 Eclipse 配置为使用 javac 而不是 ECJ 进行编译?

Rop*_*Rop 5 java eclipse javac eclipse-jdt java-8

我在使用 javac 编译器编译的 maven 项目中遇到了一些与 java8 相关的代码,但在 Eclipse 中给出了编译错误(我认为 ECJ 编译器不同于 javac)。

我在 Eclipse-Luna 中导入它:Import => Maven => Existsing Maven Project

作为快速修复,有没有办法让 Eclipse 在 maven 项目中使用 javac(从而禁用 ECJ 编译器)?

编辑:添加编译器差异的最小 poc 示例。

此代码使用javac 编译,但 List 初始化在 Eclipse 中给出错误:“此表达式的目标类型必须是功能接口”

package test;

import static java.util.Arrays.asList;

import java.util.List;

public class Test01 {

    private static final List<MyInterface> items = asList(() -> "123", () -> "456");

    public void test01() {
        System.out.println("Hello");
    }

    public interface MyInterface {
        String value();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果添加类型转换,错误就会消失:

private static final List<MyInterface> items = asList((MyInterface) () -> "123", (MyInterface) () -> "456");
Run Code Online (Sandbox Code Playgroud)