java - unir - Puede eclipsar extraer una segunda clase en el archivo de clase a su propio archivo
menu de clases en java (5)
A menudo, refactorizo el código primero creando una clase interna dentro de la clase en la que estoy trabajando. Cuando termino, muevo todo en un nuevo archivo de clase. Esto hace que el código de refactorización en la nueva clase sea extremadamente fácil porque A) solo estoy tratando con un solo archivo, y B) no creo nuevos archivos hasta que tenga una idea bastante buena de los nombres / nombres (a veces termina como más de una clase).
¿Hay alguna forma en que Eclipse me pueda ayudar con el movimiento final? Debería poder decirle en qué paquete quiero que esté la clase, puede encontrar el nombre del nombre de la clase y el directorio del paquete.
Esto parece un refactor trivial y realmente obvio, pero no puedo entender las pulsaciones de teclas / gestos / lo que sea para hacerlo realidad. Intenté arrastrar, menús, menús contextuales y navegar por los atajos de teclado.
Alguien sabe esto?
[editar] Estas ya son clases de "Nivel superior" en este archivo, no clases internas, y "Mover" no parece querer crear una nueva clase para mí. Esta es la manera difícil en que generalmente lo hago: consiste en salir, crear una clase vacía, regresar y moverme. Me gustaría hacer todo en un solo paso.
Haga clic con el botón derecho en el nombre de la clase (en el código fuente) y elija Refactorizar -> Convertir tipo de miembro a nivel superior. Sin embargo, no le permite elegir el paquete.
Se puede hacer en 2 refactorizaciones:
Convertir miembro a nivel superior
Movimiento
Lamento haber dado la respuesta incorrecta antes. Volví a revisar, y no hizo nada que desea. Encontré una solución para ti, de nuevo, en 3.4.
Resalte la clase, haga una copia CTRL-C o corte CTRL-X, haga clic en el paquete al que desea que ingrese la clase, y haga un pegado, CTRL-V. Eclipse generará automáticamente la clase para ti.
Convertir miembro tipo a nivel superior no funciona del todo. Hacer eso creará un campo de la clase externa y generará un constructor que tome la clase externa como un parámetro.
En Eclipse 3.6, puede hacer: Refactorizar -> Mover tipo a archivo nuevo
Para IntelliJ IDEA / Android Studio: Refactorizar -> Mover -> Mover la clase interna MyInnerClass al nivel superior