I know the question is old but I will leave this for future references.
You have two options to override a Getter/Setter in your class.
One is the answer from First Option response
The other option is to simply define the getter/setter method and lombok will not automatically produce the specified method.
I tested it myself and it seems to work fine:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProductResponse {
private UUID id;
private String supplierId;
private String sku;
private String name;
private String brand;
private String imgUrl;
private String description;
private BigDecimal price;
private Float quantity;
private String unit;
//@Getter(AccessLevel.NONE) //This means @Data will not produce a getter for this field so have to explicitly define it
private Set<ProductTag> tags;
//Here we override @Data getter with a different getter (return is different type)
public List<UUID> getTags() {
return tags.stream().map(ProductTag::getId).collect(Collectors.toList());
}
}
Here is also a reference from the development team comments: Lombok's developer comment
In my example I'm using the "override" feature for a Collection
type but this can be used for any other type like Boolean
in your case.