Annotation Type Setter


@Target({FIELD,TYPE}) @Retention(SOURCE) public @interface Setter
Put on any field to make lombok build a standard setter.

Complete documentation is found at the project lombok features page for @Getter and @Setter.

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

Example:

     private @Setter int foo;
 
will generate:
     public void setFoo(int foo) {
         this.foo = 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 Setter annotation have the annotation.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    Deprecated.
    Don't use this annotation, ever - Read the documentation.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Any 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 setter to be non-public, you can specify an alternate access level here.
  • Element Details

    • value

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

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

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