Java, Refactoring – Why Delete Method/Field/Function Refactoring Doesn’t Exist in Eclipse

eclipsejavarefactoring

An operation in an interface is obsolete so I decided to delete it.
It seems that there is no automatic support for such a "refactoring" in Eclipse.

For me is a refactoring operation since the behavior of the code will be preserved since nobody (tests, client apis) will notice that the operation was removed.

In Eclipse, in Java code, on an method in an interface I have the following options: rename, move, change method signature, inline, extract interface, extract superclass, use supertype when possible, pull up, push down, introduce parameter objet, introduce indirection, generate declared type.

Is there any reason for which a delete method/field/function refactoring doesn't exist?

Best Answer

The reason is, this feature is not yet implemented - see Bug 39715 Add Refactor/Remove interface method and all 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...

Above request has been in turn marked a duplicate of Bug 24379 [refactoring] Change interface signature:

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...

Bug 24379 seems to be laying dormant for more than 10 years now, "Reported: 2002-10-04" and "Target Milestone" field is not yet set.

Related Topic