Lombok注解的使用方法
一:引言
优点
:
- 简单省事,通过注解自动生成简化了开发,提高开发效率
- 让代码更简洁,可以更多的关注相应的方法
- 属性做修改时,也简化了这些属性生成的get/set方法
缺点
:
- 对新手阅读源码不友好
- 不支持多种参数构造器的重载
- 降低源码可读性和完整性,降低了阅读源码的舒适度(
我不赞同这一点,我觉得挺舒服的
)
二:正文
1. 获取get和set方法
@Getter and @Setter
2. 字段属性常量
@FieldNameConstants
3. tostring方法
@ToString
4. equals和hashcode方法
@EqualsAndHashCode
5. 有参构造
@AllArgsConstructor
6. 无参构造
@NoArgsConstructor
7. 无参构造之二
@RequiredArgsConstructor
快速生成被@NonNull
或final
字段修饰的属性的构造方法。
8. 代表@Getter and @Setter
,@EqualsAndHashCode
,@RequiredArgsConstructor
,@ToString
@Data
注:当实体类一旦使用`@Data`注解,就不建议再使用继承关系了
因为equals不符合预期标准(尤其是仅比较子类属性)
9. 简化版@Data
注解
@Value
注:相比@Data
注解,它生成的属性都被final修饰
,=>不再提供set方法
10. try-catch代码块
@SneakyThrows(value = Exception.class)
注:这里的value值
的是异常类型。
11.close()操作
@Cleanup
12.build建造者模式
@Builder
- 之后new对象的时候,只需要再builder()下面设置属性值
如:
Student student=Student.builder()
.age(18)
.sex("男")
.name("魏良")
.build();
- 设置参数前缀
@Builder(setterPrefix = "test")
- 参数设置默认值
@Builder.Default
int age=10;
13.开启链式编程
@Accessors(chain = true)
14.跨域问题
@CrossOrigin
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger,
@CustomLog
@SuperBuilder
@Singular
@Delegate
@Accessors
@Wither
@With
@val
@var
experimental @var
@UtilityClass
Lombok config system