2009-11-05 6 views
5

Tengo una interfaz que ahora está vacía y se extiende a otra interfaz. Me gustaría eliminar la interfaz vacía y usar la interfaz base, y estoy tratando de encontrar la refactorización correcta en IntelliJ.'Quitar middleman' Refactorización de IntelliJ en una interfaz vacía

He intentado con "eliminar intermediarios" pero he obtenido "no puedo realizar la refactorización. El cursor debe colocarse al nombre del campo que se va a refactorizar".

Respuesta

2

Creo que lo que está buscando es la refactorización de "tipo de migración".

+0

No funciona - Todavía aparece el error "El cursor debe colocarse ...". – ripper234

+0

¿Dónde aplica el refactorizador? Este refactor debe aplicarse en la clase de la declaración de campo. Por lo tanto, si tiene: A extiende B .... private A myField; solo puede aplicar esta refactorización en A en la línea de declaración de campo. –

2

En cuanto a a blog post explaining the "Remove Middleman" refactoring en IDEA, creo que simplemente no puede usarlo para esto. Es solo para "reemplazar todas las llamadas para delegar métodos con las llamadas directas equivalentes".

(Por un momento pensé otra refactorización, "Uso de interfaz cuando sea posible", podría ser de ayuda, pero no pude conseguir que el trabajo sea en mi caso simple prueba.)

5

creo que lo que quiere hacer es el refactor "en línea" en la interfaz no deseada, por ejemplo

Si

 
class Thing implements ThingA 

y

 
interface ThingA extends ThingB 

para deshacerse de ThingA

que haces y en línea (ctrl + alt + n) cuando el cursor está en ThingA, usted termina con:

 
class Thing implements ThingB 
0

La mejor manera de eliminar usos de una interfaz de vacío es a través de "Uso de interfaz cuando sea posible", vaya a la definición de la interfaz que desea eliminar y seleccione "Usar interfaz donde sea posible" desde el menú "Refactor". Debería terminar con una interfaz no utilizada que puede eliminar de forma segura.

Cuestiones relacionadas