Perché cancellare il metodo / campo / refactoring della funzione non esiste in Eclipse?

3

Un'operazione in un'interfaccia è obsoleta, quindi ho deciso di eliminarla. Sembra che non ci sia un supporto automatico per tale "refactoring" in Eclipse.

Per me è un'operazione di refactoring poiché il comportamento del codice verrà mantenuto poiché nessuno (test, apis del client) noterà che l'operazione è stata rimossa.

In Eclipse, in codice Java, su un metodo in un'interfaccia ho le seguenti opzioni: rinomina, sposta, modifica firma del metodo, inline, estrai interfaccia, estrai superclasse, usa supertype quando possibile, tira su, spinge verso il basso, introduce parametro objet, introduce indirection, genera il tipo dichiarato.

C'è qualche ragione per cui non esiste un metodo di eliminazione / campo / refactoring di funzione?

    
posta raisercostin 26.10.2013 - 15:45
fonte

2 risposte

7

Il motivo è che questa funzione non è ancora stata implementata - vedi Bug 39715 Aggiungi Refactor / Rimuovi il metodo di interfaccia e tutti gli impls. [refactoring] in Eclipse issue tracker:

Here is something I am running into now. I am cleaning up a bunch of code that removes no longer needed methods from interfaces and all implementing classes. Right now, this is quite a tedious processes. It would be helpful to have a refactoring such that I could select an interface method and delete it along with all impl. methods in all classes...

La richiesta di cui sopra è stata a sua volta contrassegnata come duplicata di Bug 24379 [refactoring ] Cambia firma interfaccia :

When adding or removing methods in interfaces it would nice to have the possibility to add or remove the method automatically in implementing classes. When adding methods it should also add a task with the note implement this method...

Il bug 24379 sembra essere dormiente da più di 10 anni, "Segnalato: 2002-10-04" e il campo "Target Milestone" non è ancora impostato.

    
risposta data 27.11.2013 - 07:04
fonte
4

Ci sono solo due situazioni durante la rimozione di un metodo da un'interfaccia: o il metodo viene usato da qualche parte, o non lo è. Se il metodo non viene mai utilizzato, eliminarlo è banale anche senza uno strumento di refactoring.

Se si utilizza il metodo, non ci sarebbe quasi mai un modo per rimuoverlo automaticamente in ogni posto in cui viene utilizzato. Semplicemente eliminandolo ovunque, sicuramente si rompono le cose. Il meglio che un IDE potrebbe fare sarebbe di darti un elenco di ovunque il metodo è usato e ti consente di decidere come rimuovere il metodo in ogni caso. IDE come Eclipse lo faranno per te.

In breve, uno strumento di refactoring per la cancellazione dei metodi sarebbe inutile perché è banale o inutile perché rompe le cose, a seconda del metodo su cui lo usi.

    
risposta data 27.11.2013 - 05:07
fonte

Leggi altre domande sui tag