簡體   English   中英

如何將靜態內部類重構為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做到了這一點

  1. 選擇內部
  2. 右鍵單擊“重構 - >將成員類型轉換為頂級...”

對於Intellj2018.1。

  1. 右鍵單擊內部類
  2. 重構
  3. 移動
  4. 移到上一級

在此輸入圖像描述

在此輸入圖像描述

我有3.4.1,如果我右鍵單擊Inner,> refactor,我有選項“Covert member Type to top level ..”,這正是你想要的。

使用重構 - > 將成員轉換為頂級類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM