// Compile with javac, it'll think the T in the generated build() method isn't type compatible. // Yet, when you take the delomboked output (which delombok will give, but with errors), THAT does compile. public class I1132RecursiveGenerics { public static class Recursive> {} public static final class Rec extends Recursive {} @lombok.Builder(builderClassName = "MethodBuilder") public static > T create() { return null; } public static void main(String[] args) { final MethodBuilder builder = I1132RecursiveGenerics.builder(); final Rec rec = builder.build(); // final Rec rec = I1132RecursiveGenerics.builder().build(); } }