当前位置 博文首页 > 范栩的博客:使用lombok中的@Data简化实体类代码

    范栩的博客:使用lombok中的@Data简化实体类代码

    作者:[db:作者] 时间:2021-08-31 09:48

    今天在学习的时候,学到了引用lombok,简化实体类代码的方法,
    首先调用lombox,之前要在setting的plugin中下载一下lombok的插件,要不然调用get,set方法的时候是没有提示的

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    

    然后在pojo的实体类中加上注解

    package com.muyu.pojo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User{
    	private long id;
    	private String name;
    	private Integer age;
    	private String email;
    }
    
    

    所达到的效果等同于这样的

    package com.muyu.pojo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    public class User{
    	private long id;
    	private String name;
    	private Integer age;
    	private String email;
    
    	public User() {
    	}
    
    	public User(long id, String name, Integer age, String email) {
    		this.id = id;
    		this.name = name;
    		this.age = age;
    		this.email = email;
    	}
    
    	public long getId() {
    		return id;
    	}
    
    	public void setId(long id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public Integer getAge() {
    		return age;
    	}
    
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    
    	public String getEmail() {
    		return email;
    	}
    
    	public void setEmail(String email) {
    		this.email = email;
    	}
    
    	@Override
    	public boolean equals(Object o) {
    		if (this == o) return true;
    		if (o == null || getClass() != o.getClass()) return false;
    
    		User user = (User) o;
    
    		if (id != user.id) return false;
    		if (name != null ? !name.equals(user.name) : user.name != null) return false;
    		if (age != null ? !age.equals(user.age) : user.age != null) return false;
    		return email != null ? email.equals(user.email) : user.email == null;
    	}
    
    	@Override
    	public int hashCode() {
    		int result = (int) (id ^ (id >>> 32));
    		result = 31 * result + (name != null ? name.hashCode() : 0);
    		result = 31 * result + (age != null ? age.hashCode() : 0);
    		result = 31 * result + (email != null ? email.hashCode() : 0);
    		return result;
    	}
    
    	@Override
    	public String toString() {
    		return "User{" +
    				"id=" + id +
    				", name='" + name + '\'' +
    				", age=" + age +
    				", email='" + email + '\'' +
    				'}';
    	}
    }
    
    

    以下是详细用法的讲解

    • @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、hashCode、toString 方法
    • @Setter:注解在属性上;为属性提供 setting 方法
    • @Getter:注解在属性上;为属性提供 getting 方法
    • @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
    • @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
    • @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
    cs
    下一篇:没有了