扩展ArrayList会导致Java Jersey中缺少属性
我正在创建一个休息服务,收集汽车资源, 在代码中,我设置集合的ID以供以后使用, 但是,当我返回CarResources的响应时,ID丢失。 而且IDE似乎没有“看到”这个属性 代码:扩展ArrayList会导致Java Jersey中缺少属性,java,jersey,Java,Jersey,我正在创建一个休息服务,收集汽车资源, 在代码中,我设置集合的ID以供以后使用, 但是,当我返回CarResources的响应时,ID丢失。 而且IDE似乎没有“看到”这个属性 代码: 最简单的方法是不扩展ArrayList,只需将列表作为自定义对象的一个成员,它就可以序列化,而无需任何额外的工作。在这种情况下,继承不是正确的解决方案,而是组合 如果坚持扩展ArrayList,则需要使用@JsonProperty注释新实例成员和/或编写自定义JsonSerializer,并使用@JsonSeri
最简单的方法是不扩展
ArrayList
,只需将列表作为自定义对象的一个成员,它就可以序列化,而无需任何额外的工作。在这种情况下,继承不是正确的解决方案,而是组合
如果坚持扩展
ArrayList
,则需要使用@JsonProperty
注释新实例成员和/或编写自定义JsonSerializer
,并使用@JsonSerialize
注释类以使用新的自定义序列化程序,因为正在使用默认的ArrayList
序列化程序否则。不要扩展ArrayList。创建一个自定义类,该类将列表作为字段。感谢我添加了受保护的ArrayList数据;对我们的基础收集资源,它解决了它。@ NIR,而不是添加感谢的评论考虑回答回答绿色检查旁边的答案
public class CarResources extends ArrayList<CarResource> {
private String id;
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public CarResources (String id) {
this.id = id;
}
[
//Missing in the response is an id property of the entire List
{
"CarResource": {
"id": "TOYOTA_CAMERI",
"name": "Toyota",
"carType": "GAS"
}
},
{
"CarResource": {
"id": "HONDA_TYPE_R",
"name": "HONDA",
"carType": "GAS"
}
}
]