import lombok.AccessLevel; import lombok.Setter; import lombok.Data; @lombok.core.PrintAST(printContent=true) public @Data class DataExample { private final String name; private @Setter(AccessLevel.PACKAGE) int age; private double score; private String[] tags; public static @Data(staticConstructor="of") class Exercise { private final String name; private final T value; } }