gpt4 book ai didi

java - 嵌套类的公共(public)构造函数

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:06 25 4
gpt4 key购买 nike

我在解析一个 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 作为嵌套类时,出现错误,找不到默认构造函数,但定义了一个公共(public)构造函数。如果我将它移到一个单独的文件中,一切都很好——库找到了构造函数。

为什么默认构造函数在我将其移动到单独的文件后变得可见?

最佳答案

因为内部类也可以是public、private、protected。如果你不指定,它是私有(private)的,在类之外是看不到的。您需要将该类声明为公共(public)类。

关于java - 嵌套类的公共(public)构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16282439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com