Когда я использую генератор открытого API, он генерирует следующий TypeAdapter для моего перечисления.
public static class Adapter extends TypeAdapter<CodesEnum> {
@Override
public void write(final JsonWriter jsonWriter, final CodesEnum enumeration) throws IOException {
jsonWriter.value(enumeration.getValue());
}
Я строю модели, использующие следующий код:
java -jar -Dmodels \
-DmodelDocs=false
-DmodelTests=false openapi-generator-cli-4.3.0.jar \
generate -i swagger.yaml -g java --model-package=c
models --additional-properties dateLibrary=java8-localdatetime,useBeanValidation=true,hideGenerationTimestamp=true \
--output=../../../
My CodesEnum
являются необязательными в моей схеме, поэтому они могут быть нулевыми. Проблема в том, что мы пытаемся сериализовать объект, используя Json, для случаев, когда перечисление равно нулю, генерируется исключение нулевого указателя.
String json = GSON.toJson(request);
java.lang.NullPointerException
models.Type$CodesEnum$Adapter.write(Type.java:222)