在我的應用程序,有這行代碼造成麻煩:如何使用泛型參數擴展非靜態類?
public class DisplayListing<R extends Listing<R, L>, L extends Listing<R, L>.Loader> extends SherlockListFragment { ... }
與Eclipse一切工作行爲都正常。但切換到IntelliJ IDEA後,出現錯誤:
沒有在範圍內包含'com.app.Listing'類型的封閉實例。
此錯誤消息引用部分Listing<R, L>.Loader
(Loader是一個非靜態類)。
當我轉到IntelliJ的首選項並將編譯器從Javac更改爲Eclipse時,我回到了業務:應用程序將成功編譯並再次運行。
但是,指示錯誤的紅色標記將保留(我想擺脫這一點)。所以我想知道如果我真的做錯了什麼,我的通用參數應該被修復,或者如果可以依賴Eclipse編譯器並忽略錯誤?
代碼在我的IntelliJ中看起來很好。你使用Java 1.7嗎? – irreputable
我剛剛更新到1.7,但問題保持不變。除此之外,我在javac和EJC之間切換了幾次,並使IntelliJ緩存失效,並突然用javac編譯成功。即使上述部分仍然標記爲錯誤... – Taig
'Loader'的可見性是什麼? – artbristol