有一个 json,包含参数的 String
值,例如status
和这个 json 由 Gson
映射到 POJO 上,这个参数映射到自定义枚举上。
JSON:
{"status":"on"}
POJO
public class StatusData {
@SerializedName("status")
@Expose
private Status status;
}
枚举:
public enum Status {
@SerializedName("on")ON,
@SerializedName("off")OFF;
}
如果 json 包含正确的值(“on”或“off”)——没问题,但如果存在不受支持的值,例如“未知”- 然后它以 Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
粉碎。还有问题:有没有办法更改异常消息以了解出了什么问题?
最佳答案
无需创建新的enum
类
使用 http://www.jsonschema2pojo.org/ 生成pojo
类
试试这个
public class StatusData
{
@SerializedName("status")
@Expose
private String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
关于java - Gson、枚举和尝试在空对象引用上调用虚拟方法 'java.lang.Class java.lang.Object.getClass()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49667419/