Google Http Java Client解析为枚举

yin*_*ash 8 java json

所以,我知道你可以使用@Value注释将json值解析为枚举,但是如果json中的值与注释的任何值都不匹配,那么行为是什么@Value.例如,假设api决定添加客户端不知道的新类型.它的值是否设置为null,或者是否有异常?有没有办法将枚举值设置为默认捕获所有值?

Lit*_*log 2

根据这个谷歌小组的帖子,你会得到NullPointerException

编辑

参考内容:

我有一个名为 Job 的对象,其中包含一个包含 API 的枚举字段 statusCode。该枚举已使用 @Value 正确注释,只要枚举处理可能返回到 status_code 字段的所有可能值,json 解析就可以正常工作。

public static class Job {

    @Key("status_code")
    public JobStatus statusCode;
}

public enum JobStatus {

    @Value("starting")
    STARTING
}
Run Code Online (Sandbox Code Playgroud)

但是,如果该字段中返回未知值,那么我会得到一个

NullPointerException:
java.lang.NullPointerException
  at com.google.api.client.util.Data.parsePrimitiveValue(Data.java:445)
  at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:795)
  at com.google.api.client.json.JsonParser.parse(JsonParser.java:438)
  at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:745)
  at com.google.api.client.json.JsonParser.parse(JsonParser.java:358)
  at com.google.api.client.json.JsonParser.parse(JsonParser.java:331)
  at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:87)
  at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
  at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:459)
Run Code Online (Sandbox Code Playgroud)

我希望这段代码足够健壮,这样如果返回未知值,它将被视为 null,而不是抛出异常并且不返回 Job 对象。有什么办法可以做到这一点吗?