gpt4 book ai didi

Java反序列化json实现抽象对象开闭原则

转载 作者:行者123 更新时间:2023-12-01 09:16:46 24 4
gpt4 key购买 nike

我有 Varchar、Integer 和 Float 的多态类型,它们扩展了基类。

我必须将以下内容添加到基类中,以便我可以在 REST API 中使用它。

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(name = "VarcharField", value = VarcharField.class),
@JsonSubTypes.Type(name = "IntegerField", value = IntegerField.class),
@JsonSubTypes.Type(name = "FloatField", value = FloatField.class)
})
public abstract class Field<T> implements FieldType<T>, Serializable {

我的问题是它打破了开放封闭原则,有没有办法解决这个问题,也许是外部配置?

最佳答案

如果使用 JsonTypeInfo.Id.CLASSJsonTypeInfo.Id.MINIMAL_CLASS,则无需指定子类型。

关于Java反序列化json实现抽象对象开闭原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40496631/

24 4 0
文章推荐: java - 如何处理这些方法中的字符串输入?
文章推荐: java - 排序方式,哪个更好 - hashmap、treemap、自定义实现
文章推荐: java - 将java库添加到Maven中
文章推荐: java - 按 Map 的值对 列表进行排序会导致具有不同私有(private)字段的对象崩溃