Maybe someone knows how to generate 'withXYZ' methods for fields in Idea e.g:
class SomeClass {
private String foo;
public SomeClass withFoo(String foo) {
this.foo = foo;
return this;
}
}
解决方案
You don't actually need to install any third-party plugin. IDEA provides this functionality out-of-the-box. Here are the steps to achieve this:
Select Code|Generate (or press Alt+Insert) then select "Setter".
In the opened window click on the button with three dots at the upper-right corner.
Click on the green plus sign at the upper-left corner in order to create new setter template. Name it as you want.
Put the following code snippet into the right input panel (actually this is the default "Builder" template with replaced "set" prefix with "with"):
#set($paramName = $helper.getParamName($field, $project))
public ##
#if($field.modifierStatic)
static void ##
#else
$classSignature ##
#end
with$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))($field.type $paramName) {
#if ($field.name == $paramName)
#if (!$field.modifierStatic)
this.##
#else
$classname.##
#end
#end
$field.name = $paramName;
#if(!$field.modifierStatic)
return this;
#end
}
Click "OK" and insert generated setter into you class.
You should do it only once. In the future you'll only have to select your setter template to generate it.