2011-07-11 35 views
4

每當我將一個(明確命名的)類型移動到另一個包時,IDEA決定用完全限定名替換所有給定類型的實例,而不是僅添加適當的導入;通過所有受影響的文件並手動修復導入是瘋狂的。IDEA 10.0.3在重構時用完全限定名替換聲明

我嘗試了「自動導入」設置的所有可能的組合,不起作用。有沒有人遇到同樣的問題?

+0

不,但要問的最好的人是Jetbrains。我發現他們通常會在一天內回覆。你正在使用哪個版本?這可能是一個現在已修復的錯誤。 –

+0

我正在使用10.0.3。不幸的是,我無法更新,因爲我無法使用新版本的IDEA所需的一些插件。謝謝你的提示,但我會問Jetbrains人:) –

回答

1

我記得至少報告過一次類似的問題,但用戶無法用新項目重現它,也無法提供他受該錯誤影響的真實項目。

這個問題似乎是由一些特殊的項目配置造成的,這是非常不尋常的,因此不會影響大多數IDEA用戶。

如果您有可複製的測試用例,請file a bug to YouTrack並將您的項目附加到該問題,以便我們可以調查並修復它。

P.S.也嘗試IDEA 10.5.1,因爲您使用的是舊版本,升級對您來說是免費的。

+0

我問Jetbrains論壇上,似乎問題觸發(只?),當在項目視圖中拖放類,但不是當使用重構 - >移動。事實上,Refactor - > Move似乎不受此問題的影響,但也存在一個小故障,fqn被添加到** getter **返回移動的類型,但否則它看起來不錯。在第二次嘗試似乎工作。似乎是一個非常模糊的bug,是的,當我有時間時,我會嘗試創建一個repro。 –

0

可能存在兩個同名的進口嗎?你檢查過這個問題嗎?

另請指定IntelliJ IDEA的版本。

+0

不,這個類型是明確命名的:/增加了版本。 –

+0

所以只是要清楚。 com.mystuff.util包中有一個名爲Foo的類。你有另一個名爲Bar的類,它有一個Foo成員變量。然後,您將Foo移動到com.mystuff.pojo,Intellij正在修改Bar中的引用:private Foo foo;私人com.mystuff.pojo.Foo foo; – Johnny

+0

@Johnny:確切! –

2

確保在設置> CodeStyle>導入中禁用「使用完全限定類名」複選框。我很抱歉,如果這不是一件容易的事,而且你已經嘗試過。

+0

不幸的是,我已禁用它,但請不要道歉:) –