Eclipse Builder模式生成插件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012557538/article/details/82801520

使用Builder模式时,相对于平时写一个Bean,会多出许多工作量,当成员属性多时,是一个很头疼的事,在插件中心找到一个可以自动生成Builder模式的插件,Eclipse插件网址:http://marketplace.eclipse.org/content/spark-builder-generator,这里我选择在线安装的形式,打开eclipse的markplace,输入builder即可查找到

安装重启即可。

然后在eclipse的设置里,可以自定义生成builder模式的模板形式

r

然后最关键的问题,来了如何使用呢???

新建一个类


public class Man {
	private Long id;
	private String name;
	private Integer age;
	private Float weight;
	private String addr;
	private Boolean male;
}

声明所需要的属性,光标在这个类内,然后点击工具栏的builder generator图标即可自动生成

最终自动生成的类详情如下:



import javax.annotation.Generated;
public class Man {
	private Long id;
	private String name;
	private Integer age;
	private Float weight;
	private String addr;
	private Boolean male;
	@Generated("SparkTools")
	private Man(Builder builder) {
		this.id = builder.id;
		this.name = builder.name;
		this.age = builder.age;
		this.weight = builder.weight;
		this.addr = builder.addr;
		this.male = builder.male;
	}
	/**
	 * Creates builder to build {@link Man}.
	 * @return created builder
	 */
	@Generated("SparkTools")
	public static Builder builder() {
		return new Builder();
	}
	/**
	 * Builder to build {@link Man}.
	 */
	@Generated("SparkTools")
	public static final class Builder {
		private Long id;
		private String name;
		private Integer age;
		private Float weight;
		private String addr;
		private Boolean male;

		private Builder() {
		}

		public Builder withId(Long id) {
			this.id = id;
			return this;
		}

		public Builder withName(String name) {
			this.name = name;
			return this;
		}

		public Builder withAge(Integer age) {
			this.age = age;
			return this;
		}

		public Builder withWeight(Float weight) {
			this.weight = weight;
			return this;
		}

		public Builder withAddr(String addr) {
			this.addr = addr;
			return this;
		}

		public Builder withMale(Boolean male) {
			this.male = male;
			return this;
		}

		public Man build() {
			return new Man(this);
		}
	}
}

完毕。

猜你喜欢

转载自blog.csdn.net/u012557538/article/details/82801520