lombok-ex 是一款相似於 lombok 的編譯時註解框架。java
編譯時注,擁有運行時註解的便利性,和無任何損失的性能。git
主要補充一些 lombok 沒有實現,且本身會用到的常見工具。github
補充 lombok 缺失的註解,便於平常開發使用。bash
lombok 的源碼基本不可讀,應該是加密處理了。框架
爲其餘註解相關框架提高性能提供基礎,後期考慮替換爲編譯時註解。maven
@Serial
支持(1)類實現序列化接口ide
(2)類生成 serialVersionUID 字段,字段的值能夠經過 value() 屬性指定。工具
@Util
支持(1)類設置爲 final性能
(2)類構造器私有化this
jdk1.7+
maven 3.x+
編譯器啓用編譯時註解功能。
如 idea 啓用 enable annotation process
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>lombok-ex</artifactId>
<version>0.0.2</version>
<scope>provided</scope>
</dependency>
複製代碼
咱們定義一個簡單的 pojo,使用 @Serial
package com.github.houbb.lombok.test.model;
import com.github.houbb.lombok.ex.annotation.Serial;
@Serial
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
複製代碼
直接使用 maven 命令編譯
$ mvn clean install
複製代碼
查看對應的 User.class 文件,內容以下:
package com.github.houbb.lombok.test.model;
import java.io.Serializable;
public class User implements Serializable {
private static final Long serialVersionUID = 1L;
private String name;
public User() {
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
複製代碼
@Util
public class StringUtil {
public static boolean isEmpty(final String string) {
return null == string || "".equals(string);
}
}
複製代碼
public final class StringUtil {
private StringUtil() {
}
public static boolean isEmpty(String string) {
return null == string || "".equals(string);
}
}
複製代碼
全部代碼均已開源,見 lombok-ex