gpt4 book ai didi

java - 直接自引用导致循环

转载 作者:行者123 更新时间:2023-11-30 05:48:53 32 4
gpt4 key购买 nike

我正在尝试发送请求以取回对象数组 - 优惠券 当我提交请求时,我得到答案 -

Direct self-reference leading to cycle (through reference chain: java.util.HashSet[0] => model.Coupon["emptyCoupon"] => model.Coupon["emptyCoupon"])

model.Coupon 可能会解决这个问题。如果请求的优惠券不存在,则返回空优惠券。

public static final int NO_ID = -1;

private static final Coupon EMPTY_COUPON = new Coupon(NO_ID, null, null, null, NO_ID, NO_ID, null, NO_ID, null);

private long id = NO_ID;
private String title;
private LocalDate startDate;
private LocalDate endDate;
private int amount;
private int category;
private String message;
private double price;
private String image;

public Coupon() {
}

private Coupon(long id, String title, LocalDate start_date, LocalDate end_date, int amount, int category,
String message, double price, String image) {
this.id = id;
this.title = title;
this.startDate = start_date;
this.endDate = end_date;
this.amount = amount;
this.category = category;
this.message = message;
this.price = price;
this.image = image;
}

public Coupon getEmptyCoupon() {
return EMPTY_COUPON;
}

在添加 EMPTY_COUPON 之前,我的请求没有任何问题。我想要代码中的空优惠券,我很乐意提供帮助

最佳答案

由于您使用 Jersey 序列化为 JSON 或 XML,因此对象图中可能没有循环。

Jersey 没有像 Jackson 那样的 @JsonBackReference,因此您可能会考虑将 EMPTY_COUPON 移到单独的类中(例如 Constants.java )并从那里获取它。

其他选项是将 @XmlIgnore 添加到您的字段或切换到另一个 JSON 序列化程序,例如 Jackson。

关于java - 直接自引用导致循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54321605/

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