gpt4 book ai didi

java - REST 如何返回接口(interface)列表

转载 作者:行者123 更新时间:2023-11-30 07:16:54 24 4
gpt4 key购买 nike

我有一个实现接口(interface) FoodItem 的类 FoodItemImpl

我想使用 REST 返回 FoodItem 列表。

我不能

但是,我可以像这样返回 FoodItemImpl 列表:

包装器

enum wria {
instance;
private Map<Integer, FoodItemImpl> map = new HashMap<Integer, FoodItemImpl>();

public Map<Integer, FoodItemImpl> get() {
return this.map;
}

wria() {
List<FoodItem> LL = FoodItemImpl.getAllFoodItems();
for (int i = 0; i < LL.size(); i++) {
map.put(LL.get(i).getID(), (FoodItemImpl) LL.get(i));
}
}
}

REST 代码

@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public List<FoodItemImpl> getXML() {
List<FoodItemImpl> ll = new LinkedList<FoodItemImpl>();
ll.addAll(wria.instance.get().values());
return ll;
}

最佳答案

您的错误表明您没有接口(interface) FoodItem 到类型 application/xml 的消息正文编写器。现在,假设您使用 JAXB 作为 XML 的默认 mbw:

JAXB 无法立即绑定(bind)接口(interface)。您必须创建一个适配器:

public class AnyFoodItemAdapter extends XmlAdapter<Object,Object> {
Object unmarshal(Object v) { return v; }
Object marshal(Object v) { return v; }
}

然后注释FoodItem:

@XmlJavaTypeAdapter(AnyFoodItemAdapter .class)
interface FoodItem {
...
}

在以下位置查看更多详细信息和其他方法:Project JAXB - Mapping Interfaces .

关于java - REST 如何返回接口(interface)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16587217/

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