lombok 简化java代码注解

lombok 简化java代码注解

安装lombok插件

以intellij ide为例

File-->Setting-->Plugins-->搜索“lombok plugin”,安装后重启ide

lombok 注解

lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。

Lombok 注解在线帮助文档:https://projectlombok.org/features/index.html

下面介绍几个我常用的 lombok 注解:

  • @Data :注解在类上;提供类所有属性的 gettingsetting 方法,此外还提供了equalscanEqualhashCodetoString 方法
  • @Setter:注解在属性上;为属性提供 setting 方法
  • @Getter:注解在属性上;为属性提供 getting 方法
  • @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
  • @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
  • @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
  • @NonNull:注解在参数上,可以省略重复的 if( null == persion)这类异常处理
  • @Cleanup:注解在输入输出流等需要释放资源的变量上,不需要写额外繁琐而重复的释放资源代码

不使用lombok

import java.io.*;

public class CleanupExample {
  public static void main(String[] args) throws IOException {
    InputStream in = new FileInputStream(args[0]);
    try {
      OutputStream out = new FileOutputStream(args[1]);
      try {
        byte[] b = new byte[10000];
        while (true) {
          int r = in.read(b);
          if (r == -1) break;
          out.write(b, 0, r);
        }
      } finally {
        if (out != null) {
          out.close();
        }
      }
    } finally {
      if (in != null) {
        in.close();
      }
    }
  }
}

使用lombok

import lombok.Cleanup;
import java.io.*;

public class CleanupExample {
  public static void main(String[] args) throws IOException {
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);
    byte[] b = new byte[10000];
    while (true) {
      int r = in.read(b);
      if (r == -1) break;
      out.write(b, 0, r);
    }
  }
}
  • val:最终局部变量,在迭代器循环时刻做简单缩写。

不使用lombok

public void example2() {
  final HashMap<Integer, String> map = new HashMap<Integer, String>();
  map.put(0, "zero");
  map.put(5, "five");
  for (final Map.Entry<Integer, String> entry : map.entrySet()) {
    System.out.printf("%d: %s\n", entry.getKey(), entry.getValue());
  }
}

使用lombok

public void example2() {
 val map = new HashMap<Integer, String>();
 map.put(0, "zero");
 map.put(5, "five");
 for (val entry : map.entrySet()) {
   System.out.printf("%d: %s\n", entry.getKey(), entry.getValue());
 }
}

下面是简单示例

不使用 lombok 的方案

public class Person {
    private String id;
    private String name;
    private String identity;
    private Logger log = Logger.getLogger(Person.class);
    public Person() {

    }

    public Person(String id, String name, String identity) {
        this.id              = id;
        this.name       = name;
        this.identity  = identity;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getIdentity() {
        return identity;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setIdentity(String identity) {
        this.identity = identity;
    }
}

使用 lombok 的方案

@Data
@Log4j
@NoArgsConstructor
@AllArgsConstructor
public class Person {

    private String id;
    private String name;
    private String identity;

}

参考文档:

时间: 2024-07-30 20:27:44

lombok 简化java代码注解的相关文章

【lombok】lombok---帮你简化生成必要但臃肿的java代码工具 【映射注解和lombok注解同时使用 以及 映射注解放在属性和get方法上的区别】

官方地址:https://projectlombok.org/ GitHub:https://github.com/rzwitserloot/lombok 指导说明文档:http://jnb.ociweb.com/jnb/jnbJan2010.html =============================================================================================================== 本来来说,lombok

IDEA里面添加lombok插件,简略Java代码的编写

      关于lombok的相关信息,lombok       下面开始在IDEA里面为我们的项目配置lombok编写支持咯,      1 . 首先在IDEA里面安装使用lombok编写简略风格代码的插件, 打开IDEA的Settings面板,并选择Plugins选项,然后点击 "Browse repositories.." 在输入框输入"lombok",得到搜索结果,选择第二个,点击安装,然后安装提示重启IDEA,安装成功; 2 . 在自己的项目里添加lomb

Spring学习笔记1——IOC: 尽量使用注解以及java代码(转)

在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IOC,mybatis,SpringMVC的基础知识,表单数据验证,文件上传等) 2.服务器异步发送邮件给注册用户.(学习消息队列) 3.用户登录.(学习缓存.Spring Security) 4.其他. 边学习边总结,不定时更新.项目环境为Intellij + Spring4.   一.准备工作. 1

《Spring实战(第4版)》——第1章 Spring之旅 1.1简化Java开发

第1部分 Spring的核心 Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependency injection,DI)和面向切面编程(aspect-oriented programming,AOP). 作为本书的开始,在第1章"Spring之旅"中,我将快速介绍一下Spring框架,包括Spring DI和AOP的概况,以及它们是如何帮助读者解耦应用组件的. 在第2章"装配Bean"中

java Annotation 注解

首先什么是注解? 最常见的是,在我们使用Eclipse等工具编写java代码的时候,有时候会出现一些比如@Deprecated,@Override,@SuppressWarnings等东东.这个就是常见的几种注解. 在开发Java程序,尤其是Java EE应用的时候,总是免不了与各种配置文件打交道.以Java EE中典型的S(pring)S(truts)H(ibernate)架构来说,Spring.Struts和Hibernate这三个框架都有自己的XML格式的配置文件.这些配置文件需要与Jav

诊断 Java 代码:设计轻松的代码维护

设计 本月,Eric Allen 解释了在使代码更易于维护的同时,避免和控制无理由的变化怎么会是保持代码健壮性的关键.他集中讨论了诸如函数样式代码编写之类的概念,以及标记字段.方法和类的方法来处理并防止可变性.Eric 还解释了本任务中单元测试和重构的角色,并提供了协助实现重构的两个工具.在相关论坛中与作者和其他读者分享您对本文的看法.(您也可以单击本文顶部或底部的"讨论",访问该论坛.)有效调试源自良好的编程.设计易于维护的程序是程序员面临的最困难挑战之一,其部分原因在于程序通常并不

Java中注解(Annotation)的基本概念

什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联 任何信息和着任何元数据(metadata)的途径和方法.Annotion(注解)是一个接口,程序可以通过反射 来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据. Annotation(注解)是JDK5.0及以后版本引入的.它可以用于创建文档,跟踪代码中的依赖性, 甚至执行基本编译时检查.从某些方面看,annotation就像修饰符一样被使用,并应

JiBX 1.2,第2部分: 从XML模式到Java代码(二)

为 TimeCard 生成的代码 hrxml 目录中的 Ant build.xml 文件将定义尝试为 TimeCard 模式生成基本代码的 Ant 目标,包括默认生成和几个自定义示例(稍后讨论).样例目录还包含一个测试程序 org.jibx.hrxml.Test.它将使用生成的数据模型类将样例文档解组,然后将文档重新编组并将结果与原始文档相比较.并且样例目录中有一组来自 HR-XML 发行版的测试文档.codegen 目标将使用默认值运行 CodeGen,compile 将编译生成的代码和测试代

JiBX 1.2,第2部分: 从XML模式到Java代码(一)

通过 XML 模式生成更干净的自定义 Java 代码 通过 XML 模式定义生成代码被广泛用于各种类型的 XML 数据交换,包括 Web 服务在内.大多数数据绑定工具都是根据模式严格地组织生成的代码 - 甚至根据可能与应用程序不相关的模式方面.本教程是共两部分的 系列教程 的第二部分,将介绍 JiBX 1.2 如何通过更好地解析模式和消除不必要的类混乱来生成更干净的代码.您还将看到如何自定义生成的代码以更好地满足需求,包括轻松地消除不必要的模式组件的自定义. 开始之前 关于本教程 JiBX 是