2014-07-19 30 views
16

我有一個Maven項目配置爲使用Java 8和一切工作正常,日食編譯如下代碼:日食不插入「鑽石」經營者在Java 8項目

Map<String,String> map = new HashMap<>(); 

它甚至抱怨老式代碼(「類型參數的冗餘說明」),當我在錯誤/警告選項卡上設置它。問題是,我不能解決如何使用這種語法默認情況下自動完成 - 我敢肯定,我看到它的工作更早,但現在每當我按Ctrl空間插入一個構造函數,它堅持添加參數,我不喜歡。

任何人都可以提示什麼設置來檢查使內容幫助插入<>而不是< String,String>?或者,這可能與我使用Java 8而不是Java 7的事實有關,或者我使用的是Maven?

+1

哪個eclipse和eclipse正在使用的java編譯器是什麼? – Leo

+2

你是否肯定你的項目的目標Java版本(*不是JRE設置)至少是Java 7? –

+0

這是STS 3.5.1,它絕對使用Java 8,因爲我甚至沒有安裝其他版本(JDK或JRE)。項目的目標版本也很好。事實證明,我必須在Content Assist設置中搞砸了一些東西(可能也是我安裝的一個Scala插件,後來刪除了某些東西或者其他插件)。無論如何,下面Marco的提示已經有所幫助,現在它再次運行,自動插入菱形語法。 :) – Lili

回答

23

我幾分鐘前就有過這個問題,並通過輸入SO問題解決了一半。

Eclipse的自動完成顯然優先於老式的通用語法,在我剛剛擺弄高級內容輔助設置之前。嘗試重置Java > Editor > Content Assist > Advanced爲默認值;這是爲我修復它,並返回自動完成插入菱形語法默認情況下。

+0

謝謝!這工作。不能相信它沒有發生,我重置設置爲默認... :) – Lili

+0

我有同樣的問題,但不幸的是,重置並不能解決它(我使用Java 8代碼合規性)。 –

+3

令人驚歎。這也解決了我的問題,並且我有一個幾乎全新的安裝。我所做的只是導入一個maven項目並設置一些評論模板。似乎默認值並不是真正的默認值。 – Kayaman

5

我有同樣的問題,但將所有設置爲默認的解決方案不適用於我。對我而言,Java > Editor > Content Assist > Advanced和取消選中JPA建議位於上方窗口。

+0

謝謝;它爲我工作:-) – Hamzeh

2

我嘗試了這裏提到的另外兩個解決方案,但他們都沒有爲我工作。對我而言,Java > Editor > Content Assist > Advanced和檢查Java Non-Type Proposals在上面的箱子。

在不同的安裝中,這也必須在較低的區域進行檢查,但它在兩個eclipse安裝中均有效。

+1

沒有爲我工作,對我來說工作是Java>編譯器,將合規性級別設置爲1.8而不是1.7 – user149621

0

我在用maven編譯時發現了這個錯誤。爲了解決這個問題,我必須將我的JAVA_HOME環境變量修復到正確的JDK。