大家好,谢谢您的帮助。
让我说:
@PUT
@Produces(MediaType.APPLICATION_JSON)
@Path("/endpoint")
public A createA(A a);
模型A:
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@Type(value = IndividualParty.class, name = "B"),
@Type(value = CorporateParty.class, name = "C")
})
public class A {
private String id;
private String description;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
模型B和C扩展了模型A 。他们有不同的领域。
我也有请求和响应模型。该请求是通过 A 对象进行的。
我使用杰克逊继承注释,我使用soapUI创建正文。 因此,当我调试时,我实际上可以看到类型是B还是C。
问题是,在我收到请求的类中,我只能访问A字段,而无法将数据映射到api,因此我需要访问B和C字段,但是请求模型仅具有A对象来执行请求,但由于B和C扩展了AI应该能够做到这一点? 例如:
public returnType method(CreateARequest request){}
我在这里想要做的是将我在soapUI(body)中发出的请求映射到另一个地方的其他字段。
例如:someOtherRequest.SetName(request.getName());
此请求可以是B或C,但我只能访问A字段... 即使我要求request.SetA(new B()); 然后是Request.getA()。 结果相同...
任何想法???谢谢
答案 0 :(得分:0)
我想我明白了。 我无法尝试,因为我现在没有远程访问,因此,我无法确定要知道的方法,但是我认为如果进行简单的向下转换很简单:
B b =新的B();
b =(B)request.getA();
现在我应该能够正确映射数据了?