这是我的POJO课
public class ResourceRecord {
public ResourceRecord() {}
public String name;
public Integer ttl;
public String type;
public String rr;
@SerializedName("class")
public String dnsClass;
}
这是序列化:
ResourceRecord rr = new ResourceRecord() {
{
name = "8.8.8.8";
dnsClass = "IN";
ttl = 600;
rr = "0431shangmao.com.";
type = "A";
}
};
String rrStr = new Gson().toJson(rr);
显然,
rrStr
获取null
。为什么?我尝试使用
@Expose
注释字段,但结果保持不变。更新:
我更改为构造为:
ResourceRecord rr = new ResourceRecord("8.8.8.8", 900,"A","1.dnstest.netshade.net.", "IN");
而且有效。
最佳答案
之所以不起作用,是因为使用花括号实例化时正在创建ResourceRecord
的匿名内部类:
ResourceRecord rr = new ResourceRecord() {
{
name = "8.8.8.8";
dnsClass = "IN";
ttl = 600;
rr = "0431shangmao.com.";
type = "A";
}
};
而且Gson不支持序列化匿名子类。