lombok学习

lombok是一个java类库,用来简化pojo实体类的开发。
<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
1.@Setter和@Getter
@Getter
@Setter
@Component
public class User {
    @Setter(AccessLevel.PROTECTED)
    private String name;
    @Getter(AccessLevel.NONE) 
    private String password;
    private String email;
}

作用:为类中的属性提供Getter和Setter方法

使用:标注在类或者属性,在属性上方则为属性添加Setter和Getter方法,在类上方则表示给所有属性添加Getter和Setter方法

常用属性作用
AccessLevel.NONE可以取消对应的get或set方法
AccessLevel.PRIVATE设置get或set方法为private
AccessLevel.PUBLIC设置get或set方法为public
AccessLevel.PACKAGE设置get或set方法在包内访问,但不在包外访问
AccessLevel.PROTECTED设置get或set方法为proteced
AccessLevel.MODULE设值get或set方法为模块级

注意:static修饰的变量不生成get和set方法,final修饰的变量只生成get方法,不生成set方法

2.@ToString
@Getter
@Setter
@Component
@ToString(exclude = "password")
//exclude:取消一个或多个属性,排除不想包含在生成的字符串中的字段
public class User {
    private String name;
    @Getter(AccessLevel.NONE)
    private String password;
    private String email;
}

作用:自动生成类的toString方法

使用:在类上添加 @ToString 注解

常用属性作用
includeFieldNames指定是否在生成的字符串中包含字段的名称,默认值为 true
doNotUseGetters如果设置为 true,则生成的 toString() 方法将直接访问字段,而不是使用 getter 方法,默认值为 false
of用于选择要包含在生成的字符串中的字段
callSuper如果设置为 true,则生成的 toString() 方法将包含父类的字段,默认值为 false
exclude用于排除不想包含在生成的字符串中的字段

注意:默认情况下,所有非静态字段都会被包含在生成的 toString() 方法中,除非使用 exclude属性来排除特定字段。

3.@NonNull

作用:用于指示特定的参数、返回值或字段不能为 null

使用:在参数前,特定字段和方法上添加注解

import lombok.NonNull;
public class Person {
	 @NonNull
    private String name;
    public Person(@NonNull String name) {
        this.name = name;
    }
    public void setName(@NonNull String name) {
        this.name = name;
    }
    @NonNull
    public String getName() {
        return name;
    }
}
4.构造函数注解

@NoArgsConstructor

作用: 生成含有必需参数的构造函数
使用位置: 类上

@AllArgsConstructor

作用: 生成全参构造函数
使用位置: 类上

@RequiredArgsConstructor

作用: 生成含有final和@NonNull修饰的属性的构造函数
使用位置: 类上

@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class User {
    private String name;
    private String password;
    private String email;
}

5.@EqualsAndHashCode

作用:自动生成equals和hashCode方法

使用位置: 类上

@EqualsAndHashCode
public class User {
    private String name;
    private String password;
    private String email;
}
6.@Data

作用: 组合注解,包含@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor

使用位置: 类上

@Data
public class User {
    private String name;
    private String password;
    private String email;
}
7.@Builder

作用:用于自动生成一个构建器模式的实现,使得创建对象更加灵活和简洁。

使用:应用于类、构造函数或者方法上。

用法:

@Builder
public class User {
    private String name;
    private String password;
    private String email;
}


@Configuration
public class MyConfig {
    public User test(){
    // 使用构建器创建对象
        User user = User.builder()
                .name("张三")
                .email("23173217@qq.com")
                .password("123456")
                .build();
        return user;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值