Annotation Type Wither


  • @Target({FIELD,TYPE})
    @Retention(SOURCE)
    public @interface Wither
    Deprecated.
    With has been promoted to the main package, so use that one instead.
    Put on any field to make lombok build a 'wither' - 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 @Wither.

    Even though it is not listed, this annotation also has the onParam and onMethod parameter. See the full documentation for more details.

    Example:

         private @Wither 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 Wither annotation have the annotation.

    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      Wither.AnyAnnotation[] onMethod
      Deprecated.
      Any annotations listed here are put on the generated method.
      Wither.AnyAnnotation[] onParam
      Deprecated.
      Any annotations listed here are put on the generated method's parameter.
      AccessLevel value
      Deprecated.
      If you want your wither to be non-public, you can specify an alternate access level here.
    • Element Detail

      • value

        AccessLevel value
        Deprecated.
        If you want your wither to be non-public, you can specify an alternate access level here.
        Returns:
        The method will be generated with this access modifier.
        Default:
        lombok.AccessLevel.PUBLIC
      • onMethod

        Wither.AnyAnnotation[] onMethod
        Deprecated.
        Any 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:
        @Wither(onMethod=@__({@AnnotationsGoHere}))
        from JDK8:
        @Wither(onMethod_={@AnnotationsGohere}) // note the underscore after onMethod.
        Returns:
        List of annotations to apply to the generated method.
        Default:
        {}
      • onParam

        Wither.AnyAnnotation[] onParam
        Deprecated.
        Any 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:
        @Wither(onParam=@__({@AnnotationsGoHere}))
        from JDK8:
        @Wither(onParam_={@AnnotationsGohere}) // note the underscore after onParam.
        Returns:
        List of annotations to apply to the generated parameter in the method.
        Default:
        {}