聊聊Lombok中的@Builder注解使用教程

网友投稿 769 2022-11-22

聊聊Lombok中的@Builder注解使用教程

聊聊Lombok中的@Builder注解使用教程

目录Lombok中的@Builder注解的使用作用引入依赖第二步给实体类加上@Builder注解第三步使用测试使用@Builder注解生成对象实体类加上@Builder注解之后的编译结果

Lombok中的@Builder注解的使用

作用

@Builder注解的作用主要是用来生成对象,并且可以为对象链式赋值。

引入依赖

因为@Builder注解是lombok中的东西,所以第一步我们需要引入lombok的依赖,如下图:

第二步给实体类加上@Builder注解

第二步我们需要给我们的实体类加上一个@Builder注解,如下图:

第三步使用测试使用@Builder注解生成对象

实体类加上@Builder注解之后的编译结果

实体类加上@Builder注解之后,编译之后会多出一个builder()方法,和一个CardBuilder静态内部类,如下图:

代码如下:

public class Card {

private int id;

private String name;

private boolean sex;

public static Card.CardBuilder builder() {

return new Card.CardBuilder();

}

public Card(int id, String name, boolean sex) {

this.id = id;

this.name = name;

this.sex = sex;

}

public Card() {

}

public int getId() {

return this.id;

}

public String getName() {

return this.name;

}

public boolean isSex() {

return this.sex;

}

public void setId(int id) {

this.id = id;

}

public void setName(String name) {

this.name = name;

}

public void setSex(boolean sex) {

this.sex = sex;

}

public boolean equals(Object o) {

if (o == this) {

return true;

} else if (!(o instanceof Card)) {

return false;

} else {

Card other = (Card)o;

if (!other.canEqual(this)) {

return false;

} else if (this.getId() != other.getId()) {

return false;

} else {

Object this$name = this.getName();

Object other$name = other.getName();

if (this$name == null) {

if (other$name == null) {

return this.isSex() == other.isSex();

}

} else if (this$name.equals(other$name)) {

return this.isSex() == other.isSex();

}

return false;

}

}

}

protected boolean canEqual(Object other) {

return other instanceof Card;

}

public int hashCode() {

int PRIME = true;

int result = 1;

int result = result * 59 + this.getId();

Object $name = this.getName();

result = result * 59 + ($name == null ? 43 : $name.hashCode());

result = result * 59 + (this.isSex() ? 79 : 97);

return result;

}

public String toString() {

return "Card(id=" + this.getId() + ", name=" + this.getName() + ", sex=" + this.isSex() + ")";

}

public static class CardBuilder {

private int id;

private String name;

private boolean sex;

CardBuilder() {

}

public Card.CardBuilder id(int id) {

this.id = id;

return this;

}

public Card.CardBuilder name(String name) {

this.name = name;

return this;

}

public Card.CardBuilder sex(boolean sex) {

this.sex = sex;

return this;

}

public Card build() {

return new Card(this.id, this.name, this.sex);

}

publkNXQmmiZic String toString() {

return "Card.CardBuilder(id=" + this.id + ", name=" + this.name + ", sex=" + this.sex + ")";

}

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:avue 表格组件(avue-crud)
下一篇:AngularJS控制器和过滤器学习(三)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~