@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "title")
@JsonSubTypes({@JsonSubTypes.Type(value = Service1.class, name="SERVICE1"),
@JsonSubTypes.Type(value = Service2.class, name = "SERVICE2"),
@JsonSubTypes.Type(value = Service3.class, name = "SERVICE3"),
@JsonSubTypes.Type(value = BaseTarget.class, name = "TARGET")})
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class BaseService extends BaseDomain implements Serializable {
private String title;
private long requestTime;
private long acceptTime;
private long progressTime;
private long completedTime;
}
Это выше класс BaseService, который отлично работает для сервисов 1-3, когда дело доходит до отображения, проблема в BaseTarget, который является абстрактным классом
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "associationType",visible = true)
@JsonSubTypes({@JsonSubTypes.Type(value = TargetService1.class, name = "TARGET1"),
@JsonSubTypes.Type(value = TargetService2.class, name = "TARGET2")})
public abstract class BaseTarget extends ImageNoteBase {
private AssociationType associationType;
private ClientType clientType;
private Status charityStatus = Status.PENDING;
}
Это выше BaseTarget является абстрактным классом, который аннотируется для дальнейшего отображения, но компилятор во время выполнения показывает, что **
не может создать экземпляр BaseTarget
(я понимаюэто очень хорошо, что абстрактный класс не может быть создан).Но я должен реализовать этот механизм.Есть ли другой способ сделать это в лучшем случае.Прошу прощения, если что-то не объяснимо четко, и дайте мне знать, что вы хотите знать дальше.ПРИМЕЧАНИЕ. Я искал решение, но не смог найти аналогичный случай.