Annotation Type With
Put on any field to make lombok build a 'with' - a withX method which produces a clone of this object (except for 1 field which gets a new value).
Complete documentation is found at the project lombok features page for @With.
Example:
private @With final int foo;will generate:
public SELF_TYPE withFoo(int foo) { return this.foo == foo ? this : new SELF_TYPE(otherField1, otherField2, foo); }
This annotation can also be applied to a class, in which case it'll be as if all non-static fields that don't already have
a With
annotation have the annotation.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic @interface
Deprecated.Don't use this annotation, ever - Read the documentation. -
Optional Element Summary
Modifier and TypeOptional ElementDescriptionAny annotations listed here are put on the generated method.Any annotations listed here are put on the generated method's parameter.If you want your with method to be non-public, you can specify an alternate access level here.
-
Element Details
-
value
AccessLevel valueIf you want your with method to be non-public, you can specify an alternate access level here.- Returns:
- The method will be generated with this access modifier.
- Default:
PUBLIC
-
onMethod
With.AnyAnnotation[] onMethodAny annotations listed here are put on the generated method. The syntax for this feature depends on JDK version (nothing we can do about that; it's to work around javac bugs).
up to JDK7:
@With(onMethod=@__({@AnnotationsGoHere}))
from JDK8:
@With(onMethod_={@AnnotationsGohere})
// note the underscore afteronMethod
.- Returns:
- List of annotations to apply to the generated method.
- Default:
{}
-
onParam
With.AnyAnnotation[] onParamAny annotations listed here are put on the generated method's parameter. The syntax for this feature depends on JDK version (nothing we can do about that; it's to work around javac bugs).
up to JDK7:
@With(onParam=@__({@AnnotationsGoHere}))
from JDK8:
@With(onParam_={@AnnotationsGohere})
// note the underscore afteronParam
.- Returns:
- List of annotations to apply to the generated parameter in the method.
- Default:
{}
-