![](/img/trans.png)
[英]How to refactor a top-level class or interface to an inner one in Eclipse?
[英]How to refactor a static inner class to a top level class in Eclipse?
我無法為以下場景找到正確的重構選項:
我有這樣的代碼(在Outer.java中):
public class Outer {
// ... class stuff
public static class Inner {
// ... inner class stuff
}
}
我正在尋找一種方法來選擇Inner,並將其轉換為頂級類,在它自己的.java
源文件中。 我知道這很容易用復制/粘貼等手動完成,但內部類在很多地方被引用,我希望refactor選項能夠處理引用它的每個地方的變化。
我已經嘗試過選項Refactor -> Extract Class...
但這對於一個我不太了解的稱為data
的字段做了一些奇怪的事情。
Eclipse版本是3.5.1 Galileo。
如何將靜態內部類重構為頂級類?
編輯:不敢相信我忽略了這樣做的選擇。 感謝您的所有正確答案,給大家+1。 我仍然需要接受一個答案,所以如果有更多有用的信息,例如與腳本有關,那么仍然有一個留下答案的目的。
這很容易我不敢相信我錯過了它:
將光標放在內部類型的任何位置,右鍵單擊並選擇:
Refactor -> Convert Member Type to Top Level...
(默認設置中沒有快捷方式)
這會自動提取內部類型,並將其放在自己的文件中,與外部類型位於同一個包和目錄中。
更新
在Eclipse的更高版本中,此重構已重命名為“將類型移動到新文件”
為了完整起見,Eclipse的4.x版已更改術語,現在他們將該操作稱為Move Type to New File...
Extract Class不是你想要的。
我只是使用Eclipse 3.4.2做到了這一點
我有3.4.1,如果我右鍵單擊Inner,> refactor,我有選項“Covert member Type to top level ..”,這正是你想要的。
使用重構 - > 將成員轉換為頂級類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.