美文网首页
Lombok学习笔记

Lombok学习笔记

作者: 云师兄 | 来源:发表于2019-11-24 11:15 被阅读0次

Lombok学习笔记

1. 介绍

  • 作用:简化代码编写,提高开发效率

  • 使用lombok之前先要在IDE上安装lombok插件。

  • 在构建工具中整合lombok,如maven项目中需要在pom.xml文件中加上:

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.16</version>
    </dependency>
    
  • 使用Lombok注解的效率和不使用Lombok自行手动编写代码的效率相同(代码反编译后的结果看出)。

2. 使用

2.1 Getter和Setter注解

举例,之前我们编写一个博客类如下:

public class Blog {
    
    private Integer id;

    private String name;

    private String description;

    private String content;

    private String cover;

    private String tag;

    private String summary;
  
    public Interger getId(){
      returnt this.id;
    }
    ......
}

如果想获取到这个Blog类的成员变量,需要在这个Blog类的内部定义上给每个字段定义get和set方法,这样才能被外部访问。但是麻烦之处就在于如果后来突然想在这个类上再加一个变量,那么就只能再手动添加这个变量对应的的get和set方法。为了解决这个问题,Lombok提供了@Getter和@Setter注解:

@Getter
@Setter
public class Blog {
    
    private Integer id;

    private String name;

    private String description;

    private String content;

    private String cover;

    private String tag;

    private String summary;
}

通过这两个注解,就可以在不手动编写getter和setter方法的前提下,访问所有成员变量:

Blog blog = new Blog();
blog.getId();

同理,除了getter和setter注解外,我们还会通常给类加上toString()方法和equals()方法。Lombok也给我们提供了:@EqualsAndHashCode和@ToString注解来省去这两个方法的编写。

2.2 Data注解

@Data注解是一个组合注解,它包含了@Getter,@Setter,EqualsAndHashCode和@ToString这四个注解,这样上面的示例就可以改成:

@Data
public class Blog {
    
    private Integer id;
    ...
  
}

只用写一个注解就可以起到同样的效果。

2.3 构造函数注解

Lombok提供了几个替代编写构造函数的注解:

  • @NoArgsConstructor :无参数的构造函数
  • @AllArgsConstructor : 全参的构造函数
  • @RequiredArgsConstructor : 指定参数的构造函数

其中要注意的是@RequiredArgsConstructor注解会给标记为final类型的成员变量创建出构造方法。

2.4 Builder注解

在之前我们创建对象并给对象的成员变量赋值写法如下:

Blog blog = new Blog();
blog.setId(id);
blog.setName(name);
...

但是如果给类添加一个Builder注解后:

@Builder
public class Blog {
    
    private Integer id;
    ...
  
}

在创建对象并赋值的时候就可以写作:

Blog blog = Blog.builder().
  id(id).
  name(name).
  ...
  build();

可以看到创建对象并给变量赋值的形式更加清晰明了。这种写法写作建造者模式。

2.5 Slf4j注解

之前在使用slf4j给代码添加注解是这么实现的:

public class BlogController {

  public static final Logger LOGGER = LoggerFactory.
    getLogger(BlogController.class);

    public static void main(String[] args){
    LOGGER.info("id={}",id);
  }

}

为了省略Logger对象的手动创建过程,Lombok也提供了@Slf4j注解,自动创建一个log对象:

@Slf4j
public class BlogController {
    public static void main(String[] args){
    log.info("id={}",id);
  }
}

相关文章

  • Lombok学习笔记

    Lombok学习笔记 1. 介绍 作用:简化代码编写,提高开发效率 使用lombok之前先要在IDE上安装lomb...

  • Lombok 学习笔记

    Java 冗长的代码是可能是Java语言自身最大的不足了,而Lombok正是为了弥补这一不足而流行的工具,Lomb...

  • 如何学习lombok

    如何学习lombok lombok为什么出现,解决了什么问题? 在项目中使用Lombok可以减少很多重复代码的书写...

  • SpringBoot学习笔记

    如何学习Lombock 为什么要使用Lombok? 使⽤了Lombok相关注解后(@Setter,@Getter,...

  • 学习lombok

    # 学习lombok ## 什么是lombok? - 就是通过@Data注解的方式省去了我们平时开发定义JavaB...

  • lombok 学习

    lombok 作用通过 注解方式 隐式生成setter和getter方法 在 lombok jar包的位置 打开...

  • Lombok学习

    一:简单介绍 1.Lombok是什么 Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。...

  • 如何在IntelliJ IDEA里使用Lombok、Thymel

    一. 如何学习Lombok 1. 为什么要使用Lombok? ● 能通过@Data等注解的形式自动生成构造器、ge...

  • 在IntelliJ IDEA里使用Lombok、Thymelea

    一. 如何学习Lombok 1. 为什么要使用Lombok? ● 能通过@Data等注解的形式自动生成构造器、ge...

  • LomBok

    我只取我需要关注的,或者说我要打笔记的点,灵感动机来自于刚到公司接触的项目让我初识LomBok.LomBok官方文...

网友评论

      本文标题:Lombok学习笔记

      本文链接:https://www.haomeiwen.com/subject/gihlwctx.html