我现在正在处理一个服务,其中有一个方法可以调用另一个端点。这个下游调用返回三种不同的json对象“风格”。现在我处理这个问题的方法是使用这样一个dto类(为了清楚起见,在请求中只发送一个dtox类;2将始终为空):
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor
public class ParentDto {
private String data;
private DtoA A;
private DtoB B;
private DtoC C;
}
这三个dto中的每一个都包含它们自己的子字段。他们彼此大不相同。我能够处理所有这些,因为注解 @JsonInclude(JsonInclude.Include.NON_NULL)
然而,如果我们能找到一个更清晰的方法,我的团队中的一些人会更愿意这样做。他们宁愿有这样的接口或抽象类:
@Data
@NoArgsConstructor
public class ParentDto {
private String data;
}
并将其扩展为三个不同的类,如:
@Data
@NoArgsConstructor
public class DtoFlavorA extends ParentDto {
private ArrayList<String> strings; //add all specific fields here
}
我看不出这是怎么做到的,因为spring需要确切地知道哪些字段将为我们填充它们。在我看来,我必须自己解析传入的json字符串,这实际上违背了首先使用dto的目的。
暂无答案!
目前还没有任何答案,快来回答吧!