2013-10-02 23 views
6

通過下面的簡單類問題的「Java命名XXX重複的方法,」我知道java: Duplicate methods named spliterator with the parameters() and() are inherited from the types java.util.List<T> and java.lang.Iterable<T>錯誤,如果使用Eclipse編譯器IDEA與JDK 8::在IDEA使用Eclipse編譯時使用JDK 8

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

+2

Eclipse尚不支持Java 8。 –

+1

哎呀不知道。如果其他人有同樣的困惑,我會在這裏留下這個問題 –

+0

從4.4開始,Eclipse支持Java 8. 4.3版本可以升級到Java 8,但不支持開箱即用。 –

回答

0

我有同樣的問題。看起來Eclipse的4.3 JTD在Java8上並不能很好地運行。在斯蒂芬·赫爾曼(CLA)的話說:

一個Java編譯器7千萬不要嘗試編譯針對JRE 8.真 兼容性方案未指定任何地方不得 甚至是可能的,因爲默認的已添加到庫中的方法確保了舊代碼的運行時兼容性 但 而不是編譯時與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

+2

換句話說,不要在比Java編譯器支持的更新版本的Java中使用給定版本的Java編譯器。如果您想要Java 8,請在Java 8上運行。 –

4

我試圖編譯Java 7時同樣的錯誤代碼與Java 8 JDK。

爲我工作的解決方案是將Eclipse中配置的JRE更改爲Java 7:Window -> Preferences -> Java -> Installed JREs。編輯現有的目錄並選擇一個包含Java 7 JDK的目錄。

+0

Project-Java構建路徑庫 - 添加庫-JRE系統庫 - 選擇java 7並刪除java 8.如果您不想更改Eclipse,這可以更改項目特定設置設置。 – oscarthecat

相關問題