在带有 JDK 8 的 IDEA 中使用 Eclipse 编译器时出现“java:名为 XXX 的重复方法”问题

问题描述 投票:0回答:2

通过以下简单的类,如果在带有 JDK 8 的 IDEA 中使用 Eclipse 编译器,我会收到

java: Duplicate methods named spliterator with the parameters () and () are inherited from the types java.util.List<T> and java.lang.Iterable<T>
错误:

public class Java8Test {
    public static interface Traverable<T> extends Iterable<T> {}
    public static interface List<T> extends Traverable<T>, java.util.List<T> {}
}

如果将编译器改为javac,则不会出现错误。如果使用 eclipse 编译器切换到 JDK 6,该错误也会消失。

IDEA版本:12.1.5

eclipse intellij-idea java-8
2个回答
5
投票

尝试使用 Java 8 JDK 编译 Java 7 代码时,我遇到了同样的错误。

对我有用的解决方案是将 Eclipse 中配置的 JRE 更改为 Java 7:

Window -> Preferences -> Java -> Installed JREs
。编辑现有目录并选择包含 Java 7 JDK 的目录。


0
投票

我也有同样的问题。看来 Eclipse 的 4.3 JTD 与 Java8 的配合不太好。 Stephan Herrmann (CLA) 的话:

Java 7 编译器不应该尝试针对 JRE 8 进行编译。正确 该方案的兼容性未在任何地方指定,并且可能不会 甚至可能因为添加了默认方法 以确保旧代码的运行时兼容性的方式构建库 但 not 与 Java 7 编译器和新库的编译时兼容性。因此我将这个错误标记为无效,它是s.t.我们不能 设计支持。

您可以在这里阅读更多内容:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=407010

这里:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=409473

https://bugs.eclipse.org/bugs/show_bug.cgi?id=390889

© www.soinside.com 2019 - 2024. All rights reserved.