我有扩展基类的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 {
我的问题在于它打破了开放的封闭原则,无论如何要解决这个问题,也许是外部配置?
答案 0 :(得分:1)
如果使用JsonTypeInfo.Id.CLASS
或JsonTypeInfo.Id.MINIMAL_CLASS
,则无需指定子类型。