Lombok,一个神奇的插件

1、什么是Lombok

 Lombok是通过注解达到不需要手动给bean添加get、set、toStirng、equals等方法的插件,编译之后就可以在对应的class文件中看到get、set、toStirng、equals等方法。

 2、Idea安装Lombok插件:点击File->Settings->plugin->直接搜素lombok插件->点击安装->重启Idea->安装完成

3、使用

a、创建maven项目


b、pom.xml引入lombok的jar包

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.com.dl</groupId>
    <artifactId>lombokDemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--引入lombok的jar包-->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.6</version>
        </dependency>
    </dependencies>
</project>

c、创建User类

package cn.com.dl.bean;

import lombok.*;

/**
 * Created by Tiger on 2018/7/3.
 */
@Data          //使用方法,get、set、toString、equals ......
@Builder       //添加一个静态的builder方法,返回值为User
@AllArgsConstructor  //所有成员属性的构造方法
@NoArgsConstructor   //无参构造方法
public class User {
    //姓名
    private String name;
    //年龄
    private int age;
}

d、测试类Main

package cn.com.dl.main;

import cn.com.dl.bean.User;

/**
 * Created by Tiger on 2018/7/3.
 */
public class LomBokMain {
    public static void main(String[] args) {
        User user = new User();
        user.setName("杨幂");
        user.setAge(23);
        System.out.println("toString() print:"+user.toString());
    }
}

e、编译之后User.class

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package cn.com.dl.bean;

import java.beans.ConstructorProperties;

public class User {
    private String name;
    private int age;

    public static User.UserBuilder builder() {
        return new User.UserBuilder();
    }

    public String getName() {
        return this.name;
    }

    public int getAge() {
        return this.age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean equals(Object o) {
        if(o == this) {
            return true;
        } else if(!(o instanceof User)) {
            return false;
        } else {
            User other = (User)o;
            if(!other.canEqual(this)) {
                return false;
            } else {
                String this$name = this.getName();
                String other$name = other.getName();
                if(this$name == null) {
                    if(other$name == null) {
                        return this.getAge() == other.getAge();
                    }
                } else if(this$name.equals(other$name)) {
                    return this.getAge() == other.getAge();
                }

                return false;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof User;
    }

    public int hashCode() {
        boolean PRIME = true;
        byte result = 1;
        String $name = this.getName();
        int result1 = result * 59 + ($name == null?43:$name.hashCode());
        result1 = result1 * 59 + this.getAge();
        return result1;
    }

    public String toString() {
        return "User(name=" + this.getName() + ", age=" + this.getAge() + ")";
    }

    @ConstructorProperties({"name", "age"})
    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public User() {
    }

    public static class UserBuilder {
        private String name;
        private int age;

        UserBuilder() {
        }

        public User.UserBuilder name(String name) {
            this.name = name;
            return this;
        }

        public User.UserBuilder age(int age) {
            this.age = age;
            return this;
        }

        public User build() {
            return new User(this.name, this.age);
        }

        public String toString() {
            return "User.UserBuilder(name=" + this.name + ", age=" + this.age + ")";
        }
    }
}

看到这里,你可以亲自去试试,只有试试才知道更多!!!欢迎来吐槽,我会及时修改!

猜你喜欢

转载自blog.csdn.net/qq_31289187/article/details/80898374