美文网首页GitHub 中文社区学习技术分享
java 编译时注解框架 lombok-ex

java 编译时注解框架 lombok-ex

作者: 老马啸西风2020 | 来源:发表于2019-10-03 13:33 被阅读0次

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 引入

<dependency>
    <groupId>com.github.houbb</groupId>
    <artifactId>lombok-ex</artifactId>
    <version>0.0.2</version>
    <scope>provided</scope>
</dependency>

例子

  • User.java

我们定义一个简单的 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 使用案例

注解使用

@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

相关文章

  • java 编译时注解框架 lombok-ex

    lombok-ex lombok-ex 是一款类似于 lombok 的编译时注解框架。 编译时注,拥有运行时注解的...

  • Android ButterKnife使用指北

    前言 本文ButterKnife版本为8.8.1,使用Java语言 ButterKnife是一个编译时的注解框架,...

  • Android 编译时注解 —— 语法详解

    java Type 详解 java 反射机制详解 注解使用入门(一) Android 自定义编译时注解1 - 简单...

  • JavaPeot笔记

    JavaPoet是提供于自动生成java文件的构建工具类框架,使用该框架可以方便根据我们所注解的内容在编译时进行代...

  • 打造一个简易的编译时注解框架(一)

    一、AbstractProcessor 1,概述 注解分为编译时注解和运行时注解,现在流行的主流框架ButterK...

  • 如何编写自定义注解

    上一篇java注解初探介绍了注解的基本概念, @Retention注解参数为CLASS时是编译时注解而RUNTIM...

  • Dagger2依赖注入

    Dagger2,一个依赖注入框架,在编译时处理注解,自动生成.java文件,Mvp架构中使用Dagger2,不需要...

  • 注解学习笔记

    什么是注解注解分类注解作用分类 元注解 Java内置注解 自定义注解自定义注解实现及使用编译时注解注解处理器注解处...

  • Android 编译时注解实现

    编译时注解:在编译的时候,通过注解处理器处理对应的注解。1.新建一个项目,然后在新建两个Java Module(a...

  • Lombok实现原理

    Java插入式注解处理器 3. 实现原理 Lombok 的核心工作原理就是编译时注解(作用于 javac 编译的过...

网友评论

    本文标题:java 编译时注解框架 lombok-ex

    本文链接:https://www.haomeiwen.com/subject/tqudpctx.html