Как создать объект для полиморфного объекта Java со строковыми типами JsonSubTypes

#java #json #polymorphism

Вопрос:

Этот класс используется для создания объекта Java из входных данных JSON. Я хочу создать статический объект для своего модульного теста. Вот мой класс :

 @Data @NoArgsConstructor @JsonTypeInfo(  use = JsonTypeInfo.Id.NAME,  include = JsonTypeInfo.As.PROPERTY,  property = "type") @JsonSubTypes({  @JsonSubTypes.Type(value = FullScan.class, name = "FullScan"),  @JsonSubTypes.Type(value = PartitionBased.class, name = "PartitionBased") }) public class BatchSpec {  @NonNull private String type; }  

Я хочу создать объект в своем тестовом классе с типом=»FullScan».

Вот как я пытаюсь это сделать :

 private static final BatchSpec batchSpec = new BatchSpec();  

Но он не принимает никаких параметров.

Что я хочу сделать, так это создать объект для приведенного ниже json :

 "batch": {"type": "FullScan"}  

Ответ №1:

Попробуй это

 BatchSpec batchSpec = new BatchSpec(); batchSpec.setType("FullScan"); JobConfig jobConfig = new JobConfig("Something",batchSpec);