Lombok使用(消除复杂的get set)

版权声明:dream_on_sakura_rain https://blog.csdn.net/qq_32112175/article/details/82700115

Lombok 

一个省去传统的get set方法的好用插件  其实功能也不全部都只是get set  只是使用这个东西的特征就是这个

所有的东西都是看着很厉害,挖一挖我去真牛逼,最后哎太复杂会用就行

有兴趣的可以直接跳过这篇文章去看官方的介绍,那里更加详细,本文也是在参照官网完成的:https://www.projectlombok.org/

插件下载可以在找到

  1. 依赖

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>0.9.2</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>projectlombok.org</id>
            <url>http://projectlombok.org/mavenrepo</url>
        </repository>
    </repositories>

    展示一下之前的使用的方式
     

    package com.sakura.domain;
    
    /**
     * @author licunzhi
     * @desc 测试@Data:不需要写set get方法
     * @date 2018-09-10
     */
    public class PersonData {
        private String name;
        private Integer age;
        private String address;
        private Double salary;
    
        public PersonData(String name, Integer age, String address, Double salary) {
            this.name = name;
            this.age = age;
            this.address = address;
            this.salary = salary;
        }
    
        public PersonData() {
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public Double getSalary() {
            return salary;
        }
    
        public void setSalary(Double salary) {
            this.salary = salary;
        }
    
        @Override
        public String toString() {
            return "PersonData{" + "name='" + name + '\'' + ", age=" + age + ", address='" + address + '\'' + ", salary="
                            + salary + '}';
        }
    }
    
  2.  可以使用的注解
    @Getter and @Setter 给指定的属性增加get或者是set方法的注解

    @NonNull 为空校验 指定属性字段不能为空,否则会出现空指针的异常问题

    @ToString 生成toString方法,callsper默认是false的 是否按照父类的方式打印, exclude排除在外的字段
    单个和多个排除在外的写法

    //@ToString(exclude = {"age", "name"}, callSuper = true)
    @ToString(exclude = "name", callSuper = true)



    @EqualsAndHashCode  equals方法以及hashCode的计算方式

    @Data @ToString@EqualsAndHashCode@Getter and @Setter. 组合提供这些方法

    @Cleanup 进行自动资源管理,修饰在变之前使用完成之后自动关闭资源(文件流)

      @Cleanup ByteArrayOutputStream baos = new ByteArrayOutputStream();




    @Synchronized 使用在方法上面,方法自动获取锁

    @SneakyThrows  自动抛受检异常,而无需显式在方法上使用throws语句

  3. 官网
    虽然介绍了很多的使用方式,但是估计大家使用的最多的还是@Data 一步到位

    所以有些注解还是观看官方介绍的比较舒服,而且官方介绍的已经足够细致,并且有很多典例可以参考和使用

    地址在:http://jnb.ociweb.com/jnb/jnbJan2010.html

欢迎访问交流群:589780530 
博主交流:2718272293
邮箱:[email protected]  [email protected]
github: https://github.com/licunzhi 

猜你喜欢

转载自blog.csdn.net/qq_32112175/article/details/82700115