0
我使用澤西和JAXB爲了輸出JSON爲webservice調用,我有一個泛型類型層次結構域模型類,我需要輸出特定的結果類:如何使用多態性和泛型類層次與JAXB
@XmlRootElement
public class OfferDto extends BaseEntity<String> {
private String name;
private String description;
// ...
}
public class OfferListResponse extends BaseListResponseImpl<OfferDto> {
}
public abstract class BaseListResponseImpl<T> implements BaseListResponse<T> {
private List<T> data;
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
}
public interface BaseListResponse<T> extends Serializable {
public List<T> getData();
}
在我的web服務我回:
OfferListResponse resp = offerService.getOfferList(params);
Response.status(Response.Status.OK).entity(resp).build();
,但我的JSON正在輸出爲:
{"data":["[email protected]","[email protected]", ..."}]}
看起來JAXB正在調用toString方法,而不是正確輸出對象字段。
如果我使用的具體類型,直接在課堂上沒有任何繼承:
@XmlRootElement
public class OfferListResponse {
private List<OfferDto> data;
// ... getters and setters
}
現在它工作正常。
我想了解我需要做什麼才能使用JAXB多態和泛型類層次結構?