File tree Expand file tree Collapse file tree 1 file changed +13
-4
lines changed
core/src/main/java/com/cosium/json_schema_to_java_record Expand file tree Collapse file tree 1 file changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -155,18 +155,27 @@ public TypeName writeJavaType(
155155
156156 constructorBuilder .addParameter (parameterSpecBuilder .build ());
157157
158- if (!propertyType .isPrimitive () && required .contains (propertyName )) {
159- if (isList (propertyType )) {
158+ boolean nonNull = required .contains (propertyName );
159+ if (isList (propertyType )) {
160+ if (nonNull ) {
160161 compactConstructorBuilder .addStatement (
161- "$N = $T.ofNullable($N).orElseGet($T::of)" ,
162+ "$N = $T.ofNullable($N).map($T::copyOf). orElseGet($T::of)" ,
162163 propertyName ,
163164 Optional .class ,
164165 propertyName ,
166+ List .class ,
165167 List .class );
166168 } else {
167169 compactConstructorBuilder .addStatement (
168- "$T.requireNonNull($N)" , Objects .class , propertyName );
170+ "$N = $T.ofNullable($N).map($T::copyOf).orElse(null)" ,
171+ propertyName ,
172+ Optional .class ,
173+ propertyName ,
174+ List .class );
169175 }
176+ } else if (!propertyType .isPrimitive () && nonNull ) {
177+ compactConstructorBuilder .addStatement (
178+ "$T.requireNonNull($N)" , Objects .class , propertyName );
170179 }
171180 }
172181 typeBuilder
You can’t perform that action at this time.
0 commit comments