其他分享
首页 > 其他分享> > lombok-@NoArgsConstructor @AllArgsConstructor

lombok-@NoArgsConstructor @AllArgsConstructor

作者:互联网

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

5,@NoArgsConstructor

注解在类上,为类提供一个无参的构造方法。 注意:
// 使用注解
@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 的值。
// 使用注解
@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

 

标签:name,NoArgsConstructor,double,private,AllArgsConstructor,Shape,lombok,public,Str
来源: https://www.cnblogs.com/lzh1043060917/p/14145455.html