Код: Выделить всё
3
...
< /code>
2
...
< /code>
2
...
< /code>
и в Java что-то вроде этого: < /p>
@Data
public abstract class Component {
@JacksonXmlProperty(isAttribute = true)
private String type;
}
@Data public class Chair3 extends Component { String seat; } // type=chair 3
@Data public class Chair2 extends Component { String backrest; } // type=chair 2
@Data public class Table extends Component { String leg; } // type=table *
@Data
public class Desk {
private String version;
@JacksonXmlElementWrapper(useWrapping = false)
private List component;
}
< /code>
Я экспериментировал с < /p>
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Chair3.class, name = "chair"), // version ???
@JsonSubTypes.Type(value = Table.class, name = "table")
})
Я подумал, что если я смогу внедрить версию в элемент DeserializationContext каким -то образом через SetAttribut потребует огромного переключателя .
Код: Выделить всё
@MyComponent(version="3", type="chair")
public class Char3 { ... }
Подробнее здесь: https://stackoverflow.com/questions/797 ... al-element