從兩個新事物同時開始:IntelliJ + Scala(+ Play)。IntelliJ:導入play.api._打破其他導入
如果我在相同的類上導入play.api._,我在編輯器上的IntelliJ報告錯誤上有一些奇怪的問題。 Project是一個用IntelliJ scala + play 2.4模板創建的新項目。
實例應用程序/控制器/子包文件ImportError.scala:
的IntelliJ的編輯是得到安寧我的錯誤就行 「進口controllers.ClassToImport」: 「無法解析符號ClassToImport」
如果我選擇'Recompile ImportError.scala',控制檯沒有給出編譯錯誤。
如果我通過刪除play.api導入來更改類:
package controllers.subpackage
import controllers.ClassToImport
class ImportError {
val instance = new ClassToImport()
}
然後,IntelliJ不再給我編輯器上的錯誤。
而且這裏的情形等觀察:
- 如果我複製粘貼戲導入之前後者進口的IntelliJ會改變我的進口:「進口controllers.ClassToImport」和「進口的發揮。 api。{controllers,_}',所以這裏一定是一些線索。爲什麼它認爲我想要玩api的控制器?
- 如果我改變了兩個導入的順序,那麼編輯器和編譯結果都很高興。
- 如果我將播放導入更改爲「import play.api.controllers」,那麼編輯器很高興,但編譯結果是「對象控制器不是package play.api的成員」。我完全不理解這一點,至於我的理解(如錯誤所示)那裏不存在play.api.controllers,那爲什麼IntelliJ編輯器接受它呢?
上面的例子是一個孤立的例子,我在使用IntelliJ導入play.api._的實際項目中遇到了這個問題。應該可以通過最新的IntelliJ IDEA社區2016.2.4輕鬆重現。
一個新資料片:如果我去的外部庫我項目並選擇「com.typesafe.play:play_2.11:2.4.8.jar」和「打開庫文件設置」並刪除源文件,然後問題就解決了。編輯器或編譯時沒有錯誤。 – Raipe