Абстрактный класс как значение в @ JacksonSubTypes.Types, который дополнительно имеет @ JacksonSubTypes.Types - PullRequest
0 голосов
/ 23 сентября 2019
@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

(я понимаюэто очень хорошо, что абстрактный класс не может быть создан).Но я должен реализовать этот механизм.Есть ли другой способ сделать это в лучшем случае.Прошу прощения, если что-то не объяснимо четко, и дайте мне знать, что вы хотите знать дальше.ПРИМЕЧАНИЕ. Я искал решение, но не смог найти аналогичный случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...