Replace constructor with builder
| Replace constructor with builder
This refactoring is available only as an intention action.
The Replace constructor with builder refactoring helps hide a constructor, replacing its usages with the references to a newly generated builder class or to an existing builder class.
tip
This action does not remove the constructor. It only replaces its usages.
Place the caret at the constructor invocation in the editor and press .
From the list of available context actions, select Replace constructor with builder.
In the dialog that opens, if you need, change the suggested setter names. Specify whether you want to initialize the generated fields in the builder.
If you specify an initial value that matches the parameter value in the constructor invocation, you can skip the setter method for such a parameter by selecting the Optional Setter checkbox. You can also specify whether you want to create a new builder or use the existing one.
Preview and apply the changes.
Before | After |
---|---|
|
|
Use this dialog to specify options for the Replace constructor with builder refactoring.
Item | Description |
---|---|
Parameters to pass to the builder | |
Parameter | This column shows the list of parameters detected in the constructor, which will be replaced with the builder fields. |
Field name | This editable column shows the list of suggested field names in the builder. |
Setter name | This editable column shows the list of suggested setter names in the builder. |
Default value | Use this editable column to initialize the fields with the default values. |
Optional setter | If the specified default value of a field matches the parameter value in the constructor invocation, then selecting this checkbox results in omitting the setter method for this field in the builder invocation. If this checkbox is not selected, the corresponding setter method will be shown anyway. |
Builder name and location | |
Create new | Click this option to generate a new builder class, with the specified name and destination package. |
Builder class name | This editable field shows the suggested name of the new builder class to be generated. You can accept the default suggestion or type a new one. |
Package for new builder | Type the name of the destination package, or click the browse button and locate it in the Choose Destination Package dialog. If the necessary package doesn't exist, click to create a new one. |
Use existing | Click this option to specify an existing builder class. |
Builder class name | Type here the fully qualified name of the builder class that already exists in your project, or click the browse button and find it either by name or in the project tree view. |