8

次の単純なクラスjava: Duplicate methods named spliterator with the parameters () and () are inherited from the types java.util.List<T> and java.lang.Iterable<T>では、IDEA で JDK 8 を使用して Eclipse コンパイラを使用するとエラーが発生します。

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 に切り替えた場合も、エラーはなくなりました。

アイデアのバージョン: 12.1.5

4

2 に答える 2

0

同じ問題がありました。Eclipse の 4.3 JTD は Java8 でうまく機能していないようです。Stephan Herrmann (CLA) の言葉:

Java 7 コンパイラーは、JRE 8 に対してコンパイルを試みるべきではありません。シナリオの真の互換性はどこにも指定されておらず、古いコードのランタイム互換性を保証する方法でライブラリーに追加されたデフォルトのメソッドのために、可能でさえない可能性があります。ただし 、Java 7 コンパイラーおよび新しいライブラリーとのコンパイル時の互換性はありません。したがって、このバグを無効としてマークしています。これは、設計上サポートできないものです。

あなたはここでもっと読むことができます:

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

于 2014-09-26T08:27:24.200 に答える