java 编译时注解框架 lombok

lombok-ex

lombok-ex 是一款类似于 lombok 的编译时注解框架。

编译时注,拥有运行时注解的便利性,和无任何损失的性能。

主要补充一些 lombok 没有实现,且自己会用到的常见工具。

创作目的

  • 补充 lombok 缺失的注解,便于日常开发使用。

  • lombok 的源码基本不可读,应该是加密处理了。

  • 为其他注解相关框架提升性能提供基础,后期考虑替换为编译时注解。

特性

  • @Serial 支持

(1)类实现序列化接口

(2)类生成 serialVersionUID 字段,字段的值可以通过 value() 属性指定。

  • @Util 支持

(1)类设置为 final

(2)类构造器私有化

变更日志

变更日志

快速开始

准备工作

  • jdk1.7+

  • maven 3.x+

  • 编译器启用编译时注解功能。

如 idea 启用 enable annotation process

maven 引入

1<dependency> 2 <groupId>com.github.houbb</groupId> 3 <artifactId>lombok-ex</artifactId> 4 <version>0.0.2</version> 5 <scope>provided</scope> 6</dependency>

例子

  • User.java

我们定义一个简单的 pojo,使用 @Serial

1package com.github.houbb.lombok.test.model; 2 3import com.github.houbb.lombok.ex.annotation.Serial; 4 5@Serial 6public class User { 7 8 private String name; 9 10 public String getName() { 11 return name; 12 } 13 14 public void setName(String name) { 15 this.name = name; 16 } 17 18}

编译

直接使用 maven 命令编译

$   mvn clean install

编译结果

查看对应的 User.class 文件,内容如下:

1package com.github.houbb.lombok.test.model; 2 3import java.io.Serializable; 4 5public class User implements Serializable { 6 private static final Long serialVersionUID = 1L; 7 private String name; 8 9 public User() { 10 } 11 12 public String getName() { 13 return this.name; 14 } 15 16 public void setName(String name) { 17 this.name = name; 18 } 19}

@Util 使用案例

注解使用

1@Util 2public class StringUtil { 3 4 public static boolean isEmpty(final String string) { 5 return null == string || "".equals(string); 6 } 7 8}

效果

1public final class StringUtil { 2 private StringUtil() { 3 } 4 5 public static boolean isEmpty(String string) { 6 return null == string || "".equals(string); 7 } 8}

代码开源地址

所有代码均已开源,见 lombok-ex

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java10下编译lombok注解的代码

序本文主要研究下在带有lombok(1.16.20版本)注解的代码在java10下的编译问题。问题Fatalerrorcompilingatorg.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)

SpringBoot配置lombok,与logback

目录:一什么是lombok二lombok安装三使用lombok四使用logback一什么是lombok  在写Java程序的时候经常会遇到如下情形:新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立getter,setter方法还有构造函数等。  lombok项目的产生就是为了省去我们手动创

Java开发奇技淫巧

lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的java代码。特别是相对于POJO,有了它妈妈再也不用担心你的Entity啦.             lombok的官方网址:http://projectlombok.org/(https://www.oschina.net/action/GoToLi