使用lombok.jar可以在Java代码中可以省略setter、getter方法了

2023-05-04 19:57:05 浏览数 (1)

lombok简介

java开发者无可避免的非技术非业务代码

  作为java开发者,实体对象的Getter、Setter方法是无可避免的。假如你的实体对象包含几十甚至上百个(蛋碎…)成员变量,你的代码将会是一片Getter、Setter方法,代码量剧增。现在,有一种方案(或者说小插件)可以让你的实体类只包含成员变量,Getter、Setter方法都可以避免,会开心吗?(哈哈)

java开发者的福音

 请容许我在小标题捧了捧lombok: 一个帮助java开发者减少代码量的小工具(公举?)。 你只需要在实体类定义成员变量,之后的Getter、Setter方法就交给lombok吧。

lombok优雅大观

使用lombok前后java实体类的对比

AppDto是最初我们最常见的java实体类,请“观赏”代码:

代码语言:javascript复制
package org.byron4j.lombok;

import java.io.Serializable;

/**
 * @author Byron.Y.Y 2016年7月7日
 * <p>原始java测试实体类</p>	
 */
public class AppDto implements Serializable, Cloneable {

	private static final long serialVersionUID = -866465084448270352L;
	private String requestNo;
	private String orgId;
	private String address;
	private String userType;
	private String userId;
	private String userLoginName;
	private String userName;
	private String idCardNo;
	private String bankCardNo;
	private String phoneNo;
	private String bankName;
	private String bankCardType;
	
	public String getRequestNo() {
		return requestNo;
	}
	public void setRequestNo(String requestNo) {
		this.requestNo = requestNo;
	}
	public String getOrgId() {
		return orgId;
	}
	public void setOrgId(String orgId) {
		this.orgId = orgId;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getUserType() {
		return userType;
	}
	public void setUserType(String userType) {
		this.userType = userType;
	}
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getUserLoginName() {
		return userLoginName;
	}
	public void setUserLoginName(String userLoginName) {
		this.userLoginName = userLoginName;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getIdCardNo() {
		return idCardNo;
	}
	public void setIdCardNo(String idCardNo) {
		this.idCardNo = idCardNo;
	}
	public String getBankCardNo() {
		return bankCardNo;
	}
	public void setBankCardNo(String bankCardNo) {
		this.bankCardNo = bankCardNo;
	}
	public String getPhoneNo() {
		return phoneNo;
	}
	public void setPhoneNo(String phoneNo) {
		this.phoneNo = phoneNo;
	}
	public String getBankName() {
		return bankName;
	}
	public void setBankName(String bankName) {
		this.bankName = bankName;
	}
	public String getBankCardType() {
		return bankCardType;
	}
	public void setBankCardType(String bankCardType) {
		this.bankCardType = bankCardType;
	}
	public static long getSerialversionuid() {
		return serialVersionUID;
	}

}

AppLombokDto 是使用lombok之后的代码,请观赏代码:

代码语言:javascript复制
package org.byron4j.lombok;

import java.io.Serializable;

import lombok.Getter;
import lombok.Setter;

/**
 * @author Byron.Y.Y 2016年7月7日
 * <p>使用lombok时java测试实体类</p>	
 */

@Setter
@Getter
public class AppLombokDto implements Serializable, Cloneable {

	private static final long serialVersionUID = 9088167527617462824L;
	private String requestNo;
	private String orgId;
	private String address;
	private String userType;
	private String userId;
	private String userLoginName;
	private String userName;
	private String idCardNo;
	private String bankCardNo;
	private String phoneNo;
	private String bankName;
	private String bankCardType;
	
}
lombok使用入门

1. 直接添加jar包到lib中  在java中项目中使用lombok,可以直接下载lombok.jar包引入到lib中; 2. 使用maven引入 引入依赖:

代码语言:javascript复制
 <!-- 增加lombok依赖,用于生成Getter、Setter -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.12.6</version>
		</dependency>

引入插件(或者在IDEA中安装lombok插件):

代码语言:javascript复制
 <!-- lombok插件 -->
			<plugin>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok-maven-plugin</artifactId>
				<version>1.12.6.0</version>
			</plugin>

3. java代码中使用lombok  使用lombok其实是使用其中的注解,常用注解有@Getter、@Setter、@Data、@ToString、@EqualsAndHashCode这几个。下面解释这几个注解的含义:

代码语言:javascript复制
@Getter: 生成get方法,是类、成员变量注解。
@Setter: 生成set方法,是类、成员变量注解。
@Data: 生成get、set方法、空构造器、toString方法、equals方法、hashCode方法,是类注解。AppLombokDto 类的注解换成@Data试试。
@ToString: 生成toString方法,是类注解。
@EqualsAndHashCode:生成equals方法、hashCode方法,是类注解。

 以下是Getter、Setter针对成员变量的使用方法:

代码语言:javascript复制
package org.byron4j.quartz.enums;



import lombok.Getter;
import lombok.Setter;

/**
 *  自定义枚举示例
 *  @company 
 *	@author oyy
 *  2016年6月22日
 */
public enum DefinitionEnum {
	SUCCESS_TYPE("SUCCESS","成功"),
	FAIL_TYPE("FAIL","失败");
	
	private @Getter @Setter String value;
	private @Getter @Setter String remark;
	
	private DefinitionEnum(String value, String remark) {
		this.value = value;
		this.remark = remark;
	}
	
	public static void main(String[] args) {
		System.out.println(DefinitionEnum.SUCCESS_TYPE.value   ":"   DefinitionEnum.SUCCESS_TYPE.remark);
	}
	
}

 更多lombok的注解,请参考projectlombok,但是无需使用。最有效的最常用的其实就是@Getter、@Setter、@Data注解。

0 人点赞