I have a class called Address which looks like this:
@Value
class Address {
   @NotNull String userId;
   @NotNull String line1;
   String line2;
   private Address(Builder b) {
      // copy everything from builder
   }
   // override getter for line2 so that it returns Optional<String>
   public Optional<String> getLine2() {
      return Optional.ofNullable(this.line2);
   }
   // and a Builder
   public static class Builder {
     // builder methods
   }
}
Here I am forced to write Builder and a Getter because, if I want to return an Optional while using Lombok, I will have to declare line2 as Optional<String>. And that will generate a builder method which accepts Optional<String>!
Is there any other way to use lombok with Optional?