- PROMOTION:
@Wither
has been promoted to the main package, renamed to @With
. Otherwise, no changes have been made to the annotation. The old experimental annotation will remain for a few versions as a deprecated annotation. If you had lombok.config
configuration for this annotation, the configuration keys for this feature have been renamed.
- FEATURE: You can now configure a custom logger framework using the new
@CustomLog
annotation in combination with the lombok.log.custom.declaration
configuration key. See the log documentation for more information. Pullrequest #2086 with thanks to Adam Juraszek.
- ENHANCEMENT: Thanks to Mark Haynes, the
staticConstructor
will now also be generated if a (private) constructor already exists.
- ENHANCEMENT:
val
is now capable of decoding the type of convoluted expressions (particularly if the right hand side involves lambdas and conditional (ternary) expressions). Pull Request #2109 with thanks to Alexander Bulgakov.
- ENHANCEMENT: You can now configure the generated builder class name via the config system, using key
lombok.builder.className
. See the Builder documentation and SuperBuilder documentation
- ENHANCEMENT: If you mix up eclipse's non-null support, such as
@NonNullByDefault
, with lombok's @NonNull
, you get a bunch of warnings about dead code that are inappropriate. These warnings are now suppressed, thanks to a contribution from Till Brychcy! Pull Request #2155
- ENHANCEMENT:
@NonNull
can now also generate checks using jdk's Objects.requireNonNull
or Guava's Preconditions.checkNotNull
.
- EXPERIMENT: Lombok is working together with checkerframework to enable detection of improper builder use (such as forgetting to set a mandatory property prior to calling
build()
). This experiment can be turned on by adding checkerframework = true
to your lombok.config
file.
- BUGFIX: Using
@JsonProperty
or @JsonValue
on a field in combination with @Setter
or @Data
would sometimes throw a ClassCastException during compilation.
- BUGFIX: Delombok would turn something like
List<byte[]>...
in a method parameter to List<byte...>...
- BUGFIX: Javac would generate the wrong equals and hashCode if a type-use annotation was put on an array type field
- BUGFIX: Eclipse 2019-06 + JDK-12 compatibility + an
@Singular
builder entry would produce a cascade of error dialogs.
- BUGFIX: Javac would throw a NullPointerException if the package-info.java did not contain a package declaration.
- BUGFIX: Javac sets incorrect annotated type on constructor, getter and setter.
- IMPROBABLE BREAKING CHANGE: Stricter validation of configuration keys dealing with identifiers and types (
lombok.log.fieldName
, lombok.fieldNameConstants.innerTypeName
, lombok.copyableAnnotations
).
- IMPROBABLE BREAKING CHANGE: The fields generated inside builders for fields with defaults (with
@Builder
on a class with fields marked @Default
) now have $value
as the name; direct manipulation of these fields is not advised because there is an associated $set
variable that also needs to be taken into account.