zoukankan      html  css  js  c++  java
  • lombok效率神奇使用

    Lombok效率神器

    标签(空格分隔): Java


    Lombok简介及使用

    Lombok 是一种 Java实用工具,可用来帮助开发人员消除Java的冗长,尤其是对于简单的Java对象(POJO), 它通过注释实现这一目的。一个标准的Java bean 一般具有若干属性,每个属性具有getter()和setter()方法,Lombok中也用到了注解,但是它并没有用到反射,而是通过在代码编译时期动态将注解替换为具体的代码。所以JVM实际运行的代码,和我们手动编写的包含了各种工具方法的类相同。
    如果想在开发时候使用lombok 简介化代码:

    IDEA plugin 中添加 lombok支持

    image_1dajjbjjcts95qc1qsafh2fr99.png-175.4kB

    添加maven依赖

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.16</version>
    </dependency>
    

    可以设置为provide ,使其仅在编译期起作用。
    maven库:@https://mvnrepository.com/artifact/org.projectlombok/lombok

    Lombok注解

    val: final 像动态语言一样,声明一个fianl的变量。
    var: 同JDK10
    @Data:注解在类上,将类提供的所有属性都添加get、set方法,并添加、equals、canEquals、hashCode、toString方法
    @Setter:注解在类上,为所有属性添加set方法、注解在属性上为该属性提供set方法
    @Getter:注解在类上,为所有的属性添加get方法、注解在属性上为该属性提供get方法
    @NotNull:在参数中使用时,如果调用时传了null值,就会抛出空指针异常
    @Synchronized 用于方法,可以锁定指定的对象,如果不指定,则默认创建一个对象锁定
    @Log作用于类,创建一个log属性
    @Builder:使用builder模式创建对象
    @NoArgsConstructor:创建一个无参构造函数
    @AllArgsConstructor:创建一个全参构造函数
    @ToString:创建一个toString方法
    @Accessors(chain = true)使用链式设置属性,set方法返回的是this对象。
    @RequiredArgsConstructor:创建对象, 例: 在class上添加@RequiredArgsConstructor(staticName = "of")会创建生成一个静态方法
    @UtilityClass:工具类
    @ExtensionMethod:设置父类
    @FieldDefaults:设置属性的使用范围,如private、public等,也可以设置属性是否被final修饰。
    @Cleanup: 关闭流、连接点。
    @EqualsAndHashCode:重写equals和hashcode方法。
    @toString:创建toString方法。
    @Cleanup: 用于流等可以不需要关闭使用流对象.
    

    例子

    1,使用lombok,代码可以简化为以下,自动生成属性的get set 方法。

    import lombok.*;
    @Setter
    @Getter
    
    public class Dog {
        String name; //默认为   friend级别
        int age;
    }
    
    

    @Accessors(chain = true):使用链式创建:

    @Setter
    @Getter
    @Accessors(chain = true)
    public class Dog {
        private String name;
        private Integer age;
    }
    
    public static void main(String[] args) {
        //使用@Accessors(chain = true)
        Dog dog = new Dog();
        dog.setName("A").setAge(1);
    }
    

    其他用法待续。

  • 相关阅读:
    hdu 5224 Tom and paper 水题
    2015 UESTC 搜索专题N题 韩爷的梦 hash
    2015 UESTC 搜索专题M题 Palindromic String 马拉车算法
    2015 UESTC 搜索专题K题 秋实大哥の恋爱物语 kmp
    2015 UESTC 搜索专题J题 全都是秋实大哥 kmp
    2015 UESTC 搜索专题F题 Eight Puzzle 爆搜
    2015 UESTC 搜索专题E题 吴队长征婚 爆搜
    2015 UESTC 搜索专题D题 基爷的中位数 二分
    2015 UESTC 搜索专题C题 基爷与加法等式 爆搜DFS
    2015 UESTC 搜索专题B题 邱老师降临小行星 记忆化搜索
  • 原文地址:https://www.cnblogs.com/hit-zb/p/10850326.html
Copyright © 2011-2022 走看看