如何使用字符串 JsonSubTypes 为多态 Java 对象创建对象

How to create object for Polymorphic Java Object with String JsonSubTypes

此 class 用于从 JSON 输入创建 Java 对象。我想为我的单元测试用例创建一个静态对象。这是我的 class :

@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;
}

我想在我的测试中创建一个对象 class with type="FullScan"

这是我尝试做的事情:

private static final BatchSpec batchSpec = new BatchSpec();

但是它不接受任何参数。

我想要做的是,为下面的 json :

创建一个对象
"batch": {"type": "FullScan"}

试试这个

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