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 + ")";
}
}
}
如果插件不能下载,去掉Use secure connection前面的勾选
看到这里,你可以亲自去试试,只有试试才知道更多!!!欢迎来吐槽,我会及时修改!
本人QQ: