首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javassist覆盖现有注释

Javassist覆盖现有注释
EN

Stack Overflow用户
提问于 2015-01-14 19:03:41
回答 1查看 943关注 0票数 0

已经存在于类顶部的注释正在被移除,而我使用Javassist添加的任何内容都在添加,但不会产生任何效果。

假设

代码语言:javascript
复制
@Entity
class Master
{

      //variables
     //getters and setters
}     

我需要的是添加额外的注解@Table(name="Master",schema="Master_Database"),通过Javassist动态添加到上面的“Master”类。

我面对的是@Entity被移除,@Table被成功添加。这会导致失去eclipseLink自动生成实体类的功能。请帮帮我

EN

回答 1

Stack Overflow用户

发布于 2015-01-16 15:30:04

它应该像这样简单:

代码语言:javascript
复制
ctClass.getClassFile().addAttribute(attributeInfo);

这不应该删除现有的注解。为了进一步帮助您,我们需要知道您是如何添加注释的。

但是,您是否绑定了Javassist?看看Byte Buddy (我是作者),它使添加注释成为一项相当简单的练习:

代码语言:javascript
复制
TypePool pool = TypePool.Default.ofClassPath();
TypeDescription type = pool.describe("name.of.class");
Class<?> enhanced = new ByteBuddy()
  .redefine(type, ClassFileLocator.ForClassFile.ofClassPath())
  .annotation(new Table() {
    ...
  })
  .make()
  .load(ClassLoader.getSystemClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
  .getLoaded();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27941382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档