Pregunta Extrayendo clase en Eclipse


Esto debe ser posible, pero no puedo entenderlo en Eclipse. yo tengo

/** ClassA.java */
class A {
  ...
}

class B {
  ...
}

y me gustaría seleccionar la clase B y extraerla a su propio archivo para obtener:

/** ClassA.java */
class A {
  ...
}

y

/** ClassB.java */
class B {
  ...
}

¿Cómo hago esto en Eclipse?


7
2017-11-01 13:38


origen


Respuestas:


Así es como lo haces (funciona en Eclipse 3.5):

  1. Seleccione su código para extraer:

    /** ClassB.java */
    class B {
      ...
    }
    
  2. Cortar

  3. Haga clic derecho en el paquete en el que desea colocarlo

  4. Selecciona pegar. (Entonces Organizar importaciones si es necesario.)


11
2017-11-01 13:49



En mi Eclipse (3.6 - Helios SR1), destaco el nombre del tipo (B), y luego haga clic derecho en el menú emergente y luego seleccione Refactor > Move Type to New File ....

Editar: Se llamó 'Convertir tipo de miembro a nivel superior' en versiones anteriores, pero se ha actualizado para que funcione con más que solo tipos de miembros:

http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-news-part2.html

Mueva el tipo a la nueva refactorización de archivos.

El tipo de miembro Convert al nivel superior   la refactorización ha sido renombrada a Mover   Escriba en Nuevo archivo y ahora permite cualquier   tipo secundario en un archivo que se va a mover   en su propio archivo. La acción   continúa trabajando para los tipos de miembros.


6
2017-11-01 13:48



Si no hay una función específica, entonces crea la nueva clase, copia y pega el contenido de B y luego toca CTRL-CAMBIO-O en ambos archivos (o al menos A.java) para limpiar las importaciones debería hacerlo.

No es algo muy común para pedir, y es bastante fácil de hacer manualmente.

Editar: También puede crear B.java y luego usar Refactoring-> Move on B en su A.java para moverlo a B.java. Sin embargo, no pareció copiar las importaciones cuando lo hice, mientras que cuando copié y pegué manualmente, agarré las importaciones automáticamente.


1
2017-11-01 13:42



No hay funcionalidad que yo sepa. Deberá crear un archivo java de su elección y cortar y pegar la clase en el nuevo archivo. Repare los nombres de importación y declaración de paquete (si es necesario).


EDITAR La mejor manera de hacerlo: simplemente crea un blanco archivo B.java, volver a A.java, resaltar B.java y haga clic derecho y seleccione Refactor -> Move (Alt+Shift+V para abreviar). Moverá la clase B a B.java.

Lo he probado y funciona. Es posible que necesite administrar las importaciones si es necesario.


1
2017-11-01 13:47



Coloque el cursor en algún lugar dentro de la clase B (tal vez debe estar dentro del nombre de la clase). Seleccionar Refactor -> Move type to new File.

(Ese es el nombre de la acción en Eclipse 3.6. Creo en versiones anteriores que era Move member type to top level)

Referencia:


0
2017-11-01 13:49