小编use*_*376的帖子

在继承和杰克逊中使用lombok的@Builder

我正在尝试将lombok的@Builder与继承和Jackson一起使用。

我是从建筑的东西https://reinhard.codes/2015/09/16/lomboks-builder-annotation-and-inheritance/https://gist.github.com/pcarrier/14d3a8e249d804cfbdee建设者遗传模式

这是我所拥有的

UserInput.java

@JsonDeserialize(builder = UserInput.UserInputBuilder.class)
@Builder
@Data
public class UserInput {
    private int userId;
    private UsersChoice usersChoice;
    private ChoiceAttributes choiceAttributes;

    @JsonPOJOBuilder(withPrefix = "")
    public static final class UserInputBuilder {

    }

    public enum UserChoice {
          CHOICE1,
          CHOICE2
    }
}
Run Code Online (Sandbox Code Playgroud)

基于用户的选择,应使用相应的ChoiceAttributes构建器。

ChoiceAttributes.java

public abstract class ChoiceAttributes {
    //nothing to do here
    public static class ChoiceAttributesBuilder {
    }

    public static ChoiceAttributesBuilder getMeMyBuilderBasedOnUserChoice(UserChoice userChoice)
    {
       ChoiceAttributesBuilder choiceAttributesBuilder = null;
       switch(userChoice){
            case CHOICE1:
                choiceAttributesBuilder = new ChoiceAttributesForChoice1.ChoiceAttributesForChoice1Builder(); //err!! …
Run Code Online (Sandbox Code Playgroud)

java design-patterns builder-pattern jackson lombok

5
推荐指数
0
解决办法
641
查看次数

标签 统计

builder-pattern ×1

design-patterns ×1

jackson ×1

java ×1

lombok ×1