我正在編寫一個使用 gson 返回 JSON 對象的程序,我發(fā)現了一些奇怪的東西。基本上,當我想將以下對象轉換為 JSON 時,它給了我 null。Customer customer = new Customer() { { setId(1); setName("Foo bar"); setAddress("Some Address"); }};System.out.println(gson.toJson(customer));客戶看起來像這樣public class Customer{ int id; String name; String address; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }但是當我正確創(chuàng)建對象時Customer customer = new Customer();customer.setId(1);customer.setName("Foo bar");customer.setAddress("Some Address");System.out.println(gson.toJson(customer));它工作得很好,并按預期輸出。為什么我如何創(chuàng)建對象很重要?兩種方法有區(qū)別嗎?
1 回答

茅侃侃
TA貢獻1842條經驗 獲得超21個贊
第一種情況返回 null 的原因是“客戶”對象的類是匿名類,clazz.isAnonymousClass() 返回 true
參見下文了解 Gson 的實現
添加回答
舉報
0/150
提交
取消