因此,我知道您可以使用@Value
注释将 json 值解析为枚举,但是如果 json 中的值与任何用@Value
. 例如,假设一个 api 决定添加一个您的客户不知道的新类型。它的值是否设置为 null,还是有异常?有没有办法将枚举值设置为默认捕获所有值?
问问题
1056 次
1 回答
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 }
但是,如果在该字段中返回未知值,那么我会得到一个
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)
我希望这段代码是健壮的,这样如果返回一个未知值,它将被视为 null 而不是抛出异常并且不返回 Job 对象。有没有办法做到这一点?
于 2015-04-27T06:29:44.700 回答