Lombok study

一、Lombok

@Setter @Getter :可以为相应的属性自动生成Getter/Setter方法

@Getter(value = AccessLevel.PRIVATE)
@Setter(value = AccessLevel.PRIVATE)
private byte[] befCode;

@NonNull:该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。

@Cleanup:该注解能帮助我们自动调用close()方法,很大的简化了代码。

@EqualsAndHashCode:默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。通过of属性指定哪些字段进行去重。

@EqualsAndHashCode(callSuper = false, exclude ={"字段1","字段2"})
//说明:callSuper = false不使用父类的字段,排除字段1和字段2.为了去重

@EqualsAndHashCode(callSuper = false, of={"字段1","字段2"})
//说明:callSuper = false不使用父类的字段,指定字段1和字段2.为了去重

@ToString:类使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。

@Data:注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。这个注解可是说是非常强大。

@SneakyThrows的作用:是由Lombok封装的,为代码生成一个try…catch块,并把异常向上抛出来
使用范围: 只能作用在方法和构造函数之上。

@Accessors(chain = true):链式调用,连续写赋值操作

@Accessors(chain = true)
public class TEntity{
    private String name;
    private int age;
....
}

//链式调用,连续写赋值操作
TEntity t=new TEntity();
t.setName("AAA").setAge(11);

@Builder:类似于建造者模式

后续学习

原文链接:Lombok实现原理解析_lombok原理_斗者_2013的博客-CSDN博客

原文链接:https://www.cnblogs.com/l3306/p/10768864.html

总结:
lombok的使用通过注解的方式减少了getter,setter的手动增加减少了代码量,增加开发效率,
特别是在改动属性名字时候维护起来也特别容易。但是同时它也减少了代码的可阅读性降低了源码的舒适度。

干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!

你可能感兴趣的:(java,开发语言)