Lombok Annotation

懒人变方便是方便,但是移植和兼容低版本JDK的时候,条件就多了!

@Getter 和 @Setter 注解的作用是为类的字段自动生成 getter 和 setter 方法。手动实现时,需要为每个字段编写对应的 getter 和 setter 方法。

@ToString 注解用于自动为类生成 toString 方法。手动实现时,要重写 toString 方法。

@EqualsAndHashCode 注解会自动生成 equals 和 hashCode 方法。手动实现时,需重写这两个方法。

@NoArgsConstructor 注解的作用是为类生成无参构造函数。手动实现时,直接编写一个无参构造函数即可。

@AllArgsConstructor 注解为类的所有字段生成一个包含所有参数的构造函数。手动实现时,编写一个包含所有字段作为参数的构造函数。

@Data 注解是一个组合注解,包含了 @Getter@Setter@ToString@EqualsAndHashCode 和 @RequiredArgsConstructor 的功能。手动实现时,需要将上述功能的代码组合起来。

@Slf4j 注解为类自动生成一个 SLF4J 日志记录器。手动实现时,需要手动声明日志记录器。

package zwf;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Objects;

public class Lombok 
{

	// 定义属性
    private String code;
    private String name;

    // 手动实现 @Slf4j 的功能,声明日志记录器
    private static final Logger log = LoggerFactory.getLogger(Lombok.class);

    // 手动实现 @NoArgsConstructor 的功能,无参构造函数
    public Lombok() 
    {
    	
    }

    // 手动实现 @AllArgsConstructor 的功能,全参构造函数
    public Lombok(String code, String name) 
    {
        this.code = code;
        this.name = name;
    }

    // 手动实现 @Getter 的功能,为 code 属性生成 getter 方法
    public String getCode() 
    {
        return code;
    }

    // 手动实现 @Setter 的功能,为 code 属性生成 setter 方法
    public void setCode(String code) 
    {
        this.code = code;
    }

    // 手动实现 @Getter 的功能,为 name 属性生成 getter 方法
    public String getName() 
    {
        return name;
    }

    // 手动实现 @Setter 的功能,为 name 属性生成 setter 方法
    public void setName(String name) 
    {
        this.name = name;
    }

    // 手动实现 @ToString 的功能,重写 toString 方法
    @Override
    public String toString() 
    {
        return "ZengWenFeng{" +
                "code='" + code + '\'' +
                ", name='" + name + '\'' +
                '}';
    }

    // 手动实现 @EqualsAndHashCode 的功能,重写 equals 方法
    @Override
    public boolean equals(Object o) 
    {
        if (this == o) 
        {
        	return true;
        }
        
        if (o == null || getClass() != o.getClass())
        {
        	return false;
        }
        
        Lombok that = (Lombok) o;
        
        return Objects.equals(code, that.code) &&
                Objects.equals(name, that.name);
    }

    // 手动实现 @EqualsAndHashCode 的功能,重写 hashCode 方法
    @Override
    public int hashCode() 
    {
        return Objects.hash(code, name);
    }

    // 示例方法,使用日志记录器
    public void doSomeLogging()
    {
        log.info("Doing some logging for ZengWenFeng with code: {} and name: {}", code, name);
    }

	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		Lombok person = new Lombok("005129", "ZengWenFeng");
		person.doSomeLogging();
		System.out.println(person);
		
		Lombok anotherPerson = new Lombok("005128", "ZengWenFeng");
		System.out.println(person.equals(anotherPerson));
	}

}

eclipse lombok_eclipse projectlombok-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值