IntelliJ IDEA 2018.2 Help

Remove Middleman

The Remove Middleman refactoring lets you replace all calls to delegating methods in a class with the equivalent calls directly to the field delegated to. Additionally, you can automatically remove the classes delegating methods, which will now be unused.

This refactoring is useful if you have a class that simply forwards many of its method calls to objects of other classes, and you wish to simplify your design.

  1. Open the class in question in the editor, and position the caret at the name of the delegating field.

  2. On the main or context menu, select Refactor | Remove Middleman .

  3. In the dialog that opens, select methods that you want to inline.

    remove middleman
    Preview and apply your changes.

Example

Before

After

public class Foo { Bar bar; public Foo getImpValue() { return bar.getImpValue(); } } public class Bar { private Foo impValue1; public Bar(Foo impValue) { impValue1 = impValue; } public Foo getImpValue() { return impValue1; } } public class Client { Foo a; Foo impValue = a.getImpValue(); }

public class Foo { Bar bar; public Bar getbar() { return bar; } } public class Bar { private Foo impValue1; public Bar(Foo impValue) { impValue1 = impValue; } public Foo getImpValue(){ return impValue1; } } public class Client { Foo a; Foo impValue = a.getbar().getImpValue(); }

Last modified: 20 November 2018

See Also