Lombok 安装、入门 -spice up your java

简介:

简介

        官网地址:https://projectlombok.org

        提供的注解:https://projectlombok.org/features/index.html

        下载链接:https://projectlombok.org/download.html

安装方式:

        使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解

        java -jar  lombok-1.16.6.jar   目前最新的版本是:1.16.6

        然后按照提示进行安装,如果不能检测到安装的Eclipse,手工指定Eclipse的安装目录即可。

        安装后,会在Eclipse安装目录中增加lombok.jar, 并在eclipse.ini中增加如下一行:

        -javaagent:lombok.jar

         安装截图:

 

如何在maven项目中引入

        注意:代码compile后,会根据lombok的注解,增加指定的代码

        比如使用@Data注解,则编译后的字节码中会为所有属性字段增加getter setter方法   

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


示例

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import lombok.AllArgsConstructor;
import lombok.Cleanup;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.java.Log;


@Log
@NoArgsConstructor
@AllArgsConstructor
@Data
public class People {
    private String id;
    private String name;
    private String identity;


    public void writerObj(String inFile,String outFile) throws IOException {
        @Cleanup InputStream in = new FileInputStream(inFile);
        @Cleanup OutputStream out = new FileOutputStream(outFile);
        byte[] b = new byte[10000];
        while (true) {
            int r = in.read(b);
            if (r == -1)
                break;
            out.write(b, 0, r);
        }
    }
}

    编译后生成的class文件,反翻译后的代码

import java.beans.ConstructorProperties;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collections;
import java.util.List;
import java.util.logging.Logger;

public class People
{
  private static final Logger log = Logger.getLogger(People.class.getName());
  private String id;
  private String name;
  private String identity;

  public void writerObj(String inFile, String outFile)
    throws IOException
  {
    InputStream in = new FileInputStream(inFile);
    try { OutputStream out = new FileOutputStream(outFile);
      try { byte[] b = new byte[10000];

        int r = in.read(b);
        if (r != -1)
        {
          out.write(b, 0, r);
        }
      }
      finally
      {
        if (Collections.singletonList(out).get(0) != null) out.close();
      }
    }
    finally
    {
      if (Collections.singletonList(in).get(0) != null) in.close();
    }
  }

  public People()
  {
  }

  @ConstructorProperties({"id""name""identity"})
  public People(String id, String name, String identity)
  {
    this.id = id; this.name = name; this.identity = identity; } 
  public String getId() { return this.id; } 
  public String getName() { return this.name; } 
  public String getIdentity() { return this.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; } 
  public boolean equals(Object o) { if (o == thisreturn trueif (!(o instanceof People)) return false; People other = (People)o; if (!other.canEqual(this)) return falseObject this$id = getId(); Object other$id = other.getId(); if (this$id == null ? other$id != null : !this$id.equals(other$id)) return falseObject this$name = getName(); Object other$name = other.getName(); if (this$name == null ? other$name != null : !this$name.equals(other$name)) return falseObject this$identity = getIdentity(); Object other$identity = other.getIdentity(); return this$identity == null ? other$identity == null : this$identity.equals(other$identity); } 
  protected boolean canEqual(Object other) { return other instanceof People; } 
  public int hashCode() { int PRIME = 59int result = 1Object $id = getId(); result = result * 59 + ($id == null ? 43 : $id.hashCode()); Object $name = getName(); result = result * 59 + ($name == null ? 43 : $name.hashCode()); Object $identity = getIdentity(); result = result * 59 + ($identity == null ? 43 : $identity.hashCode()); return result; } 
  public String toString() { return "People(id=" + getId() + ", name=" + getName() + ", identity=" + getIdentity() + ")"; }

}

 
 

目录
相关文章
|
4天前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
19 1
java制作游戏,如何使用libgdx,入门级别教学
|
16天前
|
Java
lombok的使用
本文介绍了Lombok库的基本使用方法和常用注解,通过示例代码展示了如何使用Lombok简化Java对象的创建、属性访问、日志记录等编码工作,使代码更加简洁。
lombok的使用
|
2天前
|
Oracle Java 关系型数据库
在 Debian 12 上安装 Java 21
在 Debian 12 上安装 Java 21
|
17天前
|
Java Linux Windows
如何安装java环境|4-17
如何安装java环境|4-17
|
20天前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【9月更文挑战第23天】在Java编程的世界中,异常是程序执行过程中不可避免的事件,它们可能会中断正常的流程并导致程序崩溃。本文将通过浅显易懂的方式,引导你理解Java异常处理的基本概念和高级技巧,帮助你编写更健壮、更可靠的代码。我们将一起探索如何捕获和处理异常,以及如何使用自定义异常来增强程序的逻辑和用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
34 4
|
3天前
|
IDE Java 编译器
java编译器的安装/环境变量的配置
java编译器的安装/环境变量的配置
14 0
|
4天前
|
Oracle IDE Java
IDEA安装教程配置java环境(超详细)
IDEA安装教程配置java环境(超详细)
|
5月前
|
安全 Java
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
|
4月前
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
66 0

热门文章

最新文章