Lombok注解使用

Lombok注解

  • @Data:注解在类上,将类提供的所有属性都添加get、set方法,并添加、equals、canEquals、hashCode、toString方法
  • @Setter:注解在类上,为所有属性添加set方法、注解在属性上为该属性提供set方法
  • @Getter:注解在类上,为所有的属性添加get方法、注解在属性上为该属性提供get方法
  • @NotNull:在参数中使用时,如果调用时传了null值,就会抛出空指针异常
  • @Synchronized 用于方法,可以锁定指定的对象,如果不指定,则默认创建一个对象锁定
  • @Log作用于类,创建一个log属性
  • @Builder:使用builder模式创建对象
@Data
@Builder
public class Demo {
    private String name;
    private Integer age;
    private String sex;


    public static void main(String[] args) {

        //构造者模式
        Demo demo = Demo.builder().age(11).name("佩奇").build();

    }
}
  • @NoArgsConstructor:创建一个无参构造函数
  • @AllArgsConstructor:创建一个全参构造函数
  • @ToStirng:创建一个toString方法
  • @Accessors(chain = true)使用链式设置属性,set方法返回的是this对象。
  • (链式设置属性举例:
@Data
@Builder
@Accessors(chain = true)
public class Demo {
    private String name;
    private Integer age;
    private String sex;


    public static void main(String[] args) {
        
        Demo demo = Demo.builder().age(11).name("佩奇").build();

        //链式
        demo.setName("阿拉丁神灯").setAge(12).setSex("男");
    }
}
  • @RequiredArgsConstructor:创建对象
  • @UtilityClass:工具类
  • @ExtensionMethod:设置父类
  • @FieldDefaults:设置属性的使用范围,如private、public等,也可以设置属性是否被final修饰。
  • @Cleanup: 关闭流、连接点。
  • @EqualsAndHashCode:重写equals和hashcode方法。
  • @toString:创建toString方法
  • @Cleanup  清理流对象,不用手动去关闭流
        @Cleanup
        ServletOutputStream outputStream = null;
        response.setContentType("application/x-download");
        fileName = URLEncoder.encode(fileName, "UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
        outputStream = response.getOutputStream();
        outputStream.write(bytes);

 编译后代码:

            ServletOutputStream outputStream = null;

            try {
                response.setContentType("application/x-download");
                fileName = URLEncoder.encode(fileName, "UTF-8");
                response.setCharacterEncoding("UTF-8");
                response.addHeader("Content-Disposition", "attachment;filename=" +                 
                                                                            fileName);
                outputStream = response.getOutputStream();
                outputStream.write(bytes);
            } finally {
                if (Collections.singletonList(outputStream).get(0) != null) {
                    outputStream.close();
                }

            }


版权声明:本文为feikillyou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。