Каков предпочтительный способ создания класса, который
- Неизменный
- Может быть сериализован/десериализован с помощью Jackson
- Человекочитаемый и с низким уровнем шаблонности
Предпочтительно, мне бы хотелось, чтобы что-то вроде этого работало:
@Data(onConstructor = @__(@JsonCreator))
а затем все поля должны быть private final
. Однако это даже не компилируется (и я не уверен, почему). С использованием
@AllArgsConstructor(onConstructor = @__(@JsonCreator))
будет компилироваться, но только дает
InvalidDefinitionException: No serializer found for class