Это работает практически из коробки. Единственное, что вам нужно сделать, это посоветовать lombok сгенерировать аннотацию @java.beans.ConstructorProperties
, чтобы Джексон знал, какой параметр конструктора использовать для какого значения JSON. Просто создайте lombok.config
в папке вашего проекта root с таким содержимым:
lombok.anyConstructor.addConstructorProperties = true
config.stopBubbling = true
Недостатком является то, что Джексон передает ArrayList
, который является изменяемым. Поэтому, если вам нужен действительно неизменяемый класс значений, вы должны использовать lombok @Builder
с @Singular
:
@Builder(setterPrefix = "with")
@JsonDeserialize(builder = Payload.PayloadBuilder.class)
@Value
public class Payload {
@Singular
private List<String> associatedCompanyIds;
}
Вам даже не нужен lombok.config
с этим подходом, но вам нужно в наименьший ломбок v1.18.12 (из-за setterPrefix
).