How to override Lombok Setter methods

Tags: ,

I’m using lombok in my project and generation Setters and Getters using @Setters and @Getters annotations on top of POJO class. I’m trying to override setters method of a property but it’s not working

I want to check if JSON property is Empty or Null i want to set default value in Setter method

@Accessors(chain = true)
public class DefaultModel {

private String name;
@Setter(AccessLevel.NONE)private String age;    

public void setAge(String age) {
     if(age==null||age.trim().isEmpty()||age.equals("null")) {
    }else {


Working scenarios:



"age":"  "

Failed Scenario :



DefaultModel(name=some, age=null)

And i’m following this as reference also here, but no luck so far


Either you just hit a bug I’ve never seen or you’re testing it wrong.

An annotation like

@Setter(AccessLevel.NONE) private String age;

on the field level indeed stops the setter from being generated. But given that you’re defining a setter, you don’t even need it. An explicit @Setter stops the generation, too.

I’ve just tried your example using Eclipse 4.7.3a and Lombok 1.18.0 and your (buggy) setter gets called. I’ve been using Lombok a lot over a few years and never encountered such a bug.

Most probably the problem is that your JSON deserializer does not use setters at all. I guess, you’re testing something like

DefaultModel defaultModel = deserialize("{"name":"some"}", DefaultModel.class);

instead of testing the setter directly. And that’s the problem.

Source: stackoverflow