【发布时间】:2019-12-24 10:35:55
【问题描述】:
使用一个返回 json 的 rest api,该 json 具有一些固定格式和每个端点的其他变化。我正在使用将传入的 json 映射到 java 类的 gson 库。
所以我有以下抽象资源:
@Getter
@Setter
public class AbstractResource {
@SerializedName("Meta")
@Expose
private List<Meta> meta = null;
@SerializedName("Body")
@Expose
private List<AbstractBody> body = null;
AbstractBody 有以下内容:
public class AbstractBody {
@SerializedName("Body")
@Expose
private Computer computer = null;
@SerializedName("Links")
@Expose
private List<Link> links = null;
AbstractResource 对所有端点都是通用的,但在抽象正文中,它在一个端点返回计算机,在另一个端点返回许可证,其他端点返回集群。一切都在 json 的 Body 字段中。所以每次 AbstractBody 都会发生变化。
目前我必须在不同的包中一次又一次地制作这两个类。所以主要的事情是这样的。
ComputerResource agreement = gson.fromJson(json, ComputerResource .class);
我想为 abstractresource 和 abstractbody 制作通用包,并在运行时决定它应该进入哪个类。
如何修改上述结构来做到这一点?
【问题讨论】:
标签: java inheritance design-patterns java-8 gson