From 46b71c810ce3ee52b1e00f63e21aa5c5d3fb5ca6 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Tue, 19 Feb 2019 00:09:03 +0100 Subject: [issue #2039] update docs to warn about a javac peculiarity for named static imports. --- website/templates/features/Builder.html | 2 ++ website/templates/features/experimental/UtilityClass.html | 2 ++ 2 files changed, 4 insertions(+) (limited to 'website/templates/features') diff --git a/website/templates/features/Builder.html b/website/templates/features/Builder.html index 793c7b54..082b97ed 100644 --- a/website/templates/features/Builder.html +++ b/website/templates/features/Builder.html @@ -183,6 +183,8 @@ public class JacksonExample { The initializer on a @Builder.Default field is removed and stored in a static method, in order to guarantee that this initializer won't be executed at all if a value is specified in the build. This does mean the initializer cannot refer to this, super or any non-static member. If lombok generates a constructor for you, it'll also initialize this field with the initializer.

Various well known annotations about nullity cause null checks to be inserted and will be copied to parameter of the builder's 'setter' method. See Getter/Setter documentation's small print for more information. +

+ Due to a peculiar way javac processes static imports, trying to do a non-star static import of the static builder() method won't work. Either use a star static import: `import static TypeThatHasABuilder.*;` or don't statically import the builder method.

diff --git a/website/templates/features/experimental/UtilityClass.html b/website/templates/features/experimental/UtilityClass.html index 4cee3657..c5f51e29 100644 --- a/website/templates/features/experimental/UtilityClass.html +++ b/website/templates/features/experimental/UtilityClass.html @@ -39,6 +39,8 @@ <@f.smallPrint>

There isn't currently any way to create non-static members, or to define your own constructor. If you want to instantiate the utility class, even only as an internal implementation detail, @UtilityClass cannot be used. +

+ Due to a peculiar way javac processes static imports, trying to do a non-star static import of any of the members of a `@UtilityClass` won't work. Either use a star static import: `import static TypeMarkedWithUtilityClass.*;` or don't statically import any of the members.

-- cgit