zoukankan      html  css  js  c++  java
  • @Builder与@NoArgsConstructor | Lombok

    一、@Builder与@NoArgsConstructor一起使用存在的问题
     
    1 @Data
    2 @Builder
    3 @NoArgsConstructor
    4 public class User {
    5     private Long skuId;
    6 }
    编译上述代码为抛出如下异常:
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project java_base: Compilation failure
    [ERROR] /Users/zhangboqing/Software/MyGithub/java_knowledge_sea/java_base/src/main/java/com/zbq/devPlugin/lombok/bean/User.java:[12,1] 无法将类 com.zbq.devPlugin.lombok.bean.User中的构造器 User应用到给定类型;
    [ERROR] 需要: 没有参数
    [ERROR] 找到: java.lang.Long,java.lang.String,boolean,java.lang.Boolean,int
    [ERROR] 原因: 实际参数列表和形式参数列表长度不同
     
    二、原因分析
    当java bean 中使用@Builder的时,无法添加无参构造器。我觉得可能的原因是,既然使用@Builder了,创建对象,可以通过builder去创建,而不需要new对象,为了防止new 对象而禁止无参构造器的存在(嘻嘻,这只是我的猜测哈)
     
    三、如何解决
    1.去掉无参构造器
        这样就可以编译通过了
    2.既然只是编译阶段有问题,那么我们可以通过@Tolerate 注解,让编译器不编译该方法就可以了
    1 @Data
    2 @Builder
    3 public class User {
    4     @Tolerate
    5     public User() {
    6     }
    7  
    8     private Long skuId;
    9 }
     
  • 相关阅读:
    P3387 【模板】缩点 tarjan
    P2831 愤怒的小鸟 状压dp
    交流帖
    P3959 宝藏 模拟退火。。。
    B1060 [ZJOI2007]时态同步 dfs
    P1850 换教室 概率dp
    树链刨分(待修改)
    B3403 [Usaco2009 Open]Cow Line 直线上的牛 deque
    B3402 [Usaco2009 Open]Hide and Seek 捉迷藏 最短路
    B5248 [2018多省省队联测]一双木棋 状压dp
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/9179878.html
Copyright © 2011-2022 走看看