zoukankan      html  css  js  c++  java
  • lombok-@NoArgsConstructor @AllArgsConstructor

    https://www.hangge.com/blog/cache/detail_2493.html

    5,@NoArgsConstructor

    注解在类上,为类提供一个无参的构造方法。
    注意:
    • 当类中有 final 字段没有被初始化时,编译器会报错,此时可用 @NoArgsConstructor(force = true),然后就会为没有初始化的 final 字段设置默认值 0 / false / null。
    • 对于具有约束的字段(例如 @NonNull 字段),不会生成检查或分配,因此请注意,正确初始化这些字段之前,这些约束无效。
    // 使用注解
    @NoArgsConstructor
    public class Shape {
        private int x;
        @NonNull
        private double y;
        @NonNull
        private String name;
    }
     
    // 不使用注解
    public class Shape {
        private int x;
        private double y;
        private String name;
     
        public Shape(){
        }
    }
    

      

    6,@AllArgsConstructor

    (1)注解在类上,为类提供一个全参的构造方法。
    (2)默认生成的方法是 public 的,如果要修改方法修饰符可以设置 AccessLevel 的值。
    • 例如:@Getter(access = AccessLevel.PROTECTED)
    // 使用注解
    @AllArgsConstructor(access = AccessLevel.PROTECTED)
    public class Shape {
        private int x;
        @NonNull
        private double y;
        @NonNull
        private String name;
    }
     
    // 不使用注解
    public class Shape {
        private int x;
        private double y;
        private String name;
     
        protected Shape(int x, double y, String name){
            this.x = x;
            this.y = y;
            this.name = name;
        }
    }
    

      


     

    7,@RequiredArgsConstructor

    (1)注解在类上,会生成构造方法(可能带参数也可能不带参数)。
    注意:如果带参数,这参数只能是以 final 修饰的未经初始化的字段或者是以 @NonNull 注解的未经初始化的字段。
     
    (2)该注解还可以用 @RequiredArgsConstructor(staticName="methodName") 的形式生成一个指定名称的静态方法,返回一个调用相应的构造方法产生的对象
     
    // 使用注解
    @RequiredArgsConstructor(staticName = "hangge")
    public class Shape {
        private int x;
        @NonNull
        private double y;
        @NonNull
        private String name;
    }
     
    // 不使用注解
    public class Shape {
        private int x;
        private double y;
        private String name;
     
        public Shape(double y, String name){
            this.y = y;
            this.name = name;
        }
     
        public static Shape hangge(double y, String name){
            return new Shape(y, name);
        }
    }
    

      

    原文出自:www.hangge.com  转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2493.html

  • 相关阅读:
    java集合遍历的几种方式总结及比较
    mybatis和hibernate中的懒加载
    数据库的四种连接方式
    Maven常用命令
    windows下nginx的安装及使用
    SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码
    Java实现基于token认证
    开放接口/RESTful/Api服务的设计和安全方案详解
    NIO的一坑一惑小记
    Linux下通过源码编译安装程序
  • 原文地址:https://www.cnblogs.com/lzh1043060917/p/14145455.html
Copyright © 2011-2022 走看看