使用 lombok 简化 Java 代码

lombok 是一个第三方工具,提供了一些注解功能,可以帮助我们消除冗余、臃肿的 Java 代码,比如 POJO 的 getter/setter 方法、构造方法、hashcode 方法等。lombok 在编译时根据注解生成具体的代码,在虚拟机中运行时与直接定义的属性和方法并没有什么不同。使用 lombok 可以大大减少 Java 代码行数,提高开发效率。


安装


  • 1.下载lombok.jar包https://projectlombok.org/download.html

  • 2.运行Lombok.jar: java -jar D:\software\lombok.jar D:\software\lombok.jar这是windows下lombok.jar所在的位置

      数秒后将弹出一框,以确认eclipse的安装路径</code>
  • 3.确认完eclipse的安装路径后,点击install/update按钮,即可安装完成

  • 4.安装完成之后,请确认eclipse安装路径下是否多了一个lombok.jar包,并且其

    配置文件eclipse.ini中是否 添加了如下内容: </code>
        -javaagent:lombok.jar 
        -Xbootclasspath/a:lombok.jar 
    那么恭喜你已经安装成功,否则将缺少的部分添加到相应的位置即可 </code>
  • 5.重启eclipse或myeclipse


在项目的 pom.xml 文件中,需要引入 lombok 插件和 maven 依赖。


<plugin>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok-maven-plugin</artifactId>
    <version>1.16.8.0</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>delombok</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.14.4</version>
</dependency>


常用注解


lombok 提供了很多注解,常用的如下。

@Getter:注解在属性上,提供 getter 方法;

@Setter:注解在属性上,提供 setter 方法;

@AllArgsConstructor:注解在类上,提供构造方法,参数为所有属性;

@NoArgsConstructor:注解在类上,提供无参构造方法;

@Data:注解在类上,提供所有属性的 getter 方法、setter 方法以及 equals、hashCode、toString 等方法;

@Log:注解在类上,提供一个名为 log 的属性,类型为 java.util.logging.Logger,也可使用 @Log4j、@Log4j2、@Slf4j 等其他注解;

@ToString:注解在类上,提供 toString 方法;

@EqualsAndHashCode:注解在类上,提供 equals、hashCode 方法;

@Synchronized:注解在方法上,提供 synchronized,可以指定锁的名称;

@NonNull:注解在方法参数上,提供对参数的校验,防止空指针异常;

@Cleanup:注解在局部变量上,提供对资源的关闭,即调用 close 方法;


使用示例

     

在下面的示例中,我们使用注解生成了无参构造器、有参构造器、 getter/setter 方法、hashcode 方法、equals 方法、toString 方法,生成了一个 slf4j 的日志工具 log,在 test 方法中生成了对于参数 msg 的空指针校验。有了 lombok,Java 代码变得非常简洁。


@Data
@Slf4j
@AllArgsConstructor
@NoArgsConstructor
public class LombokTest { @Getter @Setter private String name; private int age; public void test(@NonNull String msg){ log.info(msg);//lombok 提供了 slf4J 日志工具 } public static void main(String[] args){ LombokTest test = new LombokTest();//无参构造器 test.setAge(17);//@Data 提供set方法 test.setName("Lucy");//@Setter 提供set方法 System.out.println(test.getName());//get方法 //有参构造器,参数按属性定义顺序传入 LombokTest lombokTest = new LombokTest("hanmeimei",15); //lombok 提供了空指针检测,会抛出异常 lombokTest.test(null); }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值