我认为您可以将@NonNull
注释添加到需要不为空的字段中.然后,无论何时构建BigJsonDto
对象,都可以try 处理该异常.例如,下面的代码将引发以下异常
Exception in thread "main" java.lang.NullPointerException: field1 is marked non-null but is null
at BigJsonDto.<init>(StackOverflowQuestion.java:21)
at BigJsonDto$BigJsonDtoBuilder.build(StackOverflowQuestion.java:21)
at StackOverflowQuestion.main(StackOverflowQuestion.java:16)
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Builder;
import lombok.Data;
import lombok.NonNull;
public class StackOverflowQuestion {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
var output = mapper.writeValueAsString(
BigJsonDto.builder()
// uncomment this line to not throw exception
//.field1("a")
.field2("b")
.field100("c").build());
System.out.println(output);
}
}
@Builder
@Data
class BigJsonDto {
@NonNull
private String field1;
private String field2;
private String field100;
}