2008-09-18 19 views
35

我經常通過在類內創建一個內部類來重構代碼我正在處理 - 當我完成時,我將整個事物轉移到一個新的類文件。這使得將代碼重構成新類變得非常容易,因爲A)我只處理單個文件,並且B)在我對名稱/名稱有一個相當好的概念之前,我不創建新文件(有時它最終會結束作爲不止一個班級)。Eclipse會在類文件中提取第二個類到它自己的文件

Eclipse有什麼方法可以幫助我完成最後一步?我應該能夠告訴它我想要什麼類的包,它可以從類名和包中的目錄中找出文件名。

這似乎是一個微不足道的重構,並且非常明顯,但我無法弄清楚擊鍵/手勢/無論如何使其發生。我嘗試過拖拽,菜單,上下文菜單和瀏覽鍵盤快捷鍵。

有人知道這個嗎?

這些文件已經是「頂級」類,而不是內部類,而「移動」似乎不想爲我創建一個新類。這是我平時所做的艱難的方式 - 涉及走出去,創建一個空的班級,回來和搬家。我想一步完成整個事情。

回答

43

對不起,我之前給出了錯誤的答案。我重新檢查了一下,它並不是很想要你想要的。儘管如此,我還是在3.4中找到了一個解決方案。

突出顯示該類,執行CTRL-C或CTRL-X的複製,單擊您希望類進行的包,然後執行粘貼CTRL-V。 Eclipse會自動爲你生成類。

將會員類型轉換爲最高級別不起作用。這樣做會創建外部類的字段並生成一個將外部類作爲參數的構造函數。

+0

如此接近。這正是我想要的,但是當我這樣做時,粘貼在包中變灰。我想知道我的日蝕版本是否太舊了。 3.3.1.1? – 2008-09-19 00:03:34

+0

我剛剛在3.3中測試過,它確實有效。嗯...也許你錯過了複製班級線? – scubabbl 2008-09-19 00:27:22

0

可以在2個重構完成:

  1. 轉換會員類型到頂級

  2. 移動

1

右鍵單擊類名(在源代碼)並選擇重構 - >將會員類型轉換爲頂級。不過,它不會讓你選擇軟件包。

28

在Eclipse 3.6,你可以這樣做:重構 - >移動式到新文件

1

的IntelliJ IDEA/Android的工作室: 重構 - >移動 - >移動內部類MyInnerClass上一級

相關問題