zoukankan      html  css  js  c++  java
  • LomBok使用的几处小细节

    先抛出一个实践认证结论,优先级关系

    @AllArgsConstructor,@NoArgsConstructor 》@Builder》@Data,@Getter,@Setter

    1.@Getter 生成get方法、无参函数

    2.@Setter 生成set方法、无参函数

    3.@Data 生成get、set方法,无参函数,hashCode,equals,canEqual,toString方法

    4.@Builder 生成全参函数、builder静态方法及XXXBuilder静态内置类

    5.@AllArgsConstructor 参函数

    6.@NoArgsConstructor 参函数

    测试a.

    不引入@AllArgsConstructor,@NoArgsConstructor两个注解时,对@Builder,@Data,@Getter,@Setter两两组合反编译发现

    只要引入了@Builder,无参函数就没了被全参函数代替

    测试b.

    不引入@Builder注解时,对@AllArgsConstructor,@NoArgsConstructor,@Data,@Getter,@Setter两两组合反编译发现

    构造函数以@AllArgsConstructor,@NoArgsConstructor为准,@Data,@Getter,@Setter的无参函数优先级低

    测试c.

    在引入@Builder和@NoArgsConstructor时编译报错,因为@Builder必须依赖全参函数,而@NoArgsConstructor优先级高使得

    类没有全参函数故编译报错,此时加入@AllArgsConstructor就编译通过了。

    增:继承关系下@Data @Builder需要作出的调整

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @ToString(callSuper = true)
    @EqualsAndHashCode(callSuper = true)
    public class Student extends Teacher {
    private String name;

    @Builder
    Student(String a,String b){
    super(b);
    this.name = b;
    }
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Teacher {
    private String classname;
    }


    注意父类不能使用@Builder,再增加全参函数供子类调用
  • 相关阅读:
    MSMQ, WCF and IIS: Getting them to play nice (Part 2)[转]
    c#通用函数[转]
    MSMQ, WCF and IIS: Getting them to play nice (Part 1)[转]
    Building a Pub/Sub Message Bus with Wcf,Msmq,IIS
    关于virtual,new,override用法详解
    wcf服务代理层添加wcf服务异步代理
    HttpModule教程
    创造和把握职位升迁的10条规则
    wcf服务代理层添加wcf服务异步代理
    windows server 2008下IIS设置问题
  • 原文地址:https://www.cnblogs.com/xuetieqi/p/13844688.html
Copyright © 2011-2022 走看看