美文网首页
在IntelliJ IDEA下使用Lombok

在IntelliJ IDEA下使用Lombok

作者: 雨林木风博客 | 来源:发表于2018-01-28 17:44 被阅读0次

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

    下载Lombok的jar包

    下载地址

    在Idea中安装Lombok Plugin插件

    安装插件

    让idea支持lombok编译

    勾选idea的Enable annotation processing选项,该选项在Preference——Build,Execution,Deployment——Compiler——Annotation Processors中

    支持编译

    看看使用的效果

    普通的POJO
    public class User {
            private String name;
            private int age;
    
            public String getName() {
                return name;
            }
        
            public void setName(String name) {
                this.name = name;
            }
        
            public int getAge() {
                return age;
            }
        
            public void setAge(int age) {
                this.age = age;
            }
     }
    
    用Lombok我们可以这么简化User类
    @Setter
    @Getter
    public class User {
        private String name;
        private int age;
    }
    

    测试一下

    public class Main {
        public static void main(String[] args) {
            User user= new User();
            user.setAge(22);
            user.setName("添华");
    
            System.out.println("age = " + user.getAge() + ", name = " + user.getName());
        }
    }
    

    嗯,好使!

    运行结果

    Lombok注解

    上面简单的使用了两个注解,同学可以再尝试一下其他的注解。

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

    OK!

    相关文章

      网友评论

          本文标题:在IntelliJ IDEA下使用Lombok

          本文链接:https://www.haomeiwen.com/subject/dalzaxtx.html