如何实现类似Lombok的编译期注解为现有类添加字段?
编译期注解实现类字段动态添加需求
我在开发Spring+Hibernate应用时,存在is_active、is_deleted这类通用字段,但不想让所有实体类都通过映射超类的方式继承这些字段,希望能按需给指定类组合添加这类字段。因此计划自定义一个编译期注解,实现给标注类自动添加指定字段的效果。
自定义注解设计
期望的注解定义如下:
@Retention(RetentionPolicy.SOURCE) @Target(ElementType.TYPE) public @interface AddNewVariable { String fieldName(); Class<?> fieldType(); }
用法示例
给User类标注该注解:
@AddNewVariable(fieldName = "isActive", fieldType = Boolean.class) class User { int id; String fullName; int age; }
期望编译结果
编译后目标文件夹中的User类需自动新增指定字段:
class User { int id; String fullName; int age; boolean isActive; }
遇到的问题
我尝试使用AbstractProcessor实现,但发现注解处理API仅能生成新文件,无法修改现有类,希望实现类似Lombok在编译期直接修改原有类的效果。
内容的提问来源于stack exchange,提问作者MuhammedSabbah
相关产品推荐
相关产品推荐

