Lombok优雅编码(一)

简介

Lombok对于 Java偷懒开发者来说应该是比较中意的。在技术框架的海洋里寻找了很久才在 GitHub开源平台上找到,而在这之前国外很多程序猿一直使用该框架了, Lombok框架提供了很多编码遍历,但是也降低了代码的阅读力。下面我们看看在Idea开发工具中该怎么使用 Lombok



目标

使用Lombok提高开发效率。



安装

Maven:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.0</version>
    <scope>provided</scope>
</dependency>

Gradel:

provided group: 'org.projectlombok', name: 'lombok', version: '1.18.0'

Intellij idea开发的话建议安装Lombok plugin



一、使用:@Getter和@Setter

        你可以用@Getter和@Setter注释任何字段(当然也可以注释到类上), 让Lombok自动生成默认的getter/setter方法.

        默认生成的方法是public的, 如果要修改方法修饰符可以设置AccessLevel的值(PUBLICPROTECTEDPACKAGE, PRIVATE)


With Lombok

public class GetterSetterExample {
  
  /**
   * Getter和Setter方法
   */
  @Getter @Setter private int age = 10;
  
  /**
   * Setter方法(修饰符protected)
   */
  @Setter(AccessLevel.PROTECTED) private String name;
  
}

Vanilla Java

public class GetterSetterExample {

  private int age = 10;

  private String name;
  
  public int getAge() {
    return age;
  }
  
  public void setAge(int age) {
    this.age = age;
  }
  
  protected void setName(String name) {
    this.name = name;
  }
}


二、使用:@ToString

        生成toString()方法, 默认情况下, 它会按顺序打印你的类名称以及每个字段, 由逗号分隔.

        可以设置不包含哪些字段: @ToString.Exclude

        如果继承父类的话,可以设置callSuper让其调用父类的toString()方法: @ToString(callSuper = true)

       可以设置是否包含字段的信息, 默认为true: @ToString(includeFieldNames = true)

With Lombok

@ToString
public class ToStringExample {
  private static final int STATIC_VAR = 10;
  private String name;
  private Shape shape = new Square(5, 10);
  // 设置不包含字段
  @ToString.Exclude private int id;
  
  public String getName() {
    return this.name;
  }
  
  // 调用父类toString()并输出字段信息
  @ToString(callSuper=true, includeFieldNames=true)
  public static class Square extends Shape {
    private final int width, height;
    
    public Square(int width, int height) {
      this.width = width;
      this.height = height;
    }
  }
}

Vanilla Java

public class ToStringExample {
  private static final int STATIC_VAR = 10;
  private String name;
  private Shape shape = new Square(5, 10);
  private int id;
  
  public String getName() {
    return this.getName();
  }
  
  public static class Square extends Shape {
    private final int width, height;
    
    public Square(int width, int height) {
      this.width = width;
      this.height = height;
    }
    
	// 调用父类toString并输出字段信息
    @Override public String toString() {
      return "Square(super=" + super.toString() + ", width=" + this.width + ", height=" + this.height + ")";
    }
  }
  
  // 不包含id字段
  @Override public String toString() {
    return "ToStringExample(" + this.getName() + ", " + this.shape ")";
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值