我解析一個JSON並碰到一個異常,說我沒有默認構造函數爲我的一個實體。下面是代碼:嵌套類的公共構造函數
public class MyPromosResponse extends BaseResponse {
public MyPromosResponseData response;
public MyPromosResponse() {
}
public TreeSet<Promo> getMyPromosResponseData() {
return new TreeSet<Promo>(response.getEvents());
}
@JsonIgnoreProperties(ignoreUnknown = true)
class MyPromosResponseData {
public ArrayList<Promo> events;
public ArrayList<Table1PromoData> Table1;
public MyPromosResponseData() {
}
public ArrayList<Promo> getEvents() {
return events;
}
ArrayList<Table1PromoData> getTable1() {
return Table1;
}
}
class Table1PromoData {
public int id;
public int eventid;
public int cardholderid;
public Table1PromoData() { // Here is the constructor.
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getEventid() {
return eventid;
}
public void setEventid(int eventid) {
this.eventid = eventid;
}
public int getCardholderid() {
return cardholderid;
}
public void setCardholderid(int cardholderid) {
this.cardholderid = cardholderid;
}
}
}
當我有Table1PromoData
作爲一個嵌套類我有默認的構造函數不能發現該錯誤,但有定義的公共構造。如果我將它移動到一個單獨的文件,一切都很好 - 該lib找到構造函數。
爲什麼默認的構造函數在我將其移動到單獨的文件後變爲可見?
讓您的嵌套類' static'。 – 2013-04-29 15:25:58
@Sotirios,謝謝,它在我將它設置爲靜態後起作用。 – Eugene 2013-04-29 15:32:24
@silk不客氣,請查看Zim-Zam的回答。 – 2013-04-29 15:34:14