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

时间:2014-08-28 08:37:20

标签: java eclipse java-8 javac eclipse-jdt

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

我在Eclipse-Luna中导入它:Import => Maven =>存在Maven项目

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

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

此代码使用 javac 进行编译,但List-initialization在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();
    }
}

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

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

0 个答案:

没有答案