java 可以动态的给一个类的属性添加或删除(忽略)注解吗?? 求解

咖啡加糖 发布于 08/26 12:07
阅读 916
收藏 1

Serverless 架构就不要服务器了?>>>

比如

@Excel(name="新增、修改追加成功",width=20)
private Integer addSuccNum;
 @Excel(name="退单",width=14)
private Integer backNum;

在有的场景需要这个注解  但是部分场景  其中一部分属性有不需要,具体哪些属性不确定,需要动态设置
 求解了

以下是问题补充:

@osc_28449350:hello (09/03 10:41)
加载中
1
Mr_Qi
Mr_Qi

误区了吧

这种需求不应该不要根据class的注解来吗 可以编程式的提供map给需要的字段

咖啡加糖
咖啡加糖
回复 @Mr_Qi : 是的,理论上定义好所有属性然后根据配置的内容然后动态的给需要导出的属性增加个注解应该也是可行的,目前还是去申请修改源码了,公司规范一般不让改,其实修改封装的代码是比较容易解决的
Mr_Qi
Mr_Qi
回复 @咖啡加糖 : 看起来是类似于easypoi的 其实支持map形式导出的 这种需求用class不合理哦 这种是静态需求
咖啡加糖
咖啡加糖
是这样的,项目里面有个导出功能,封装好的,导出哪些列原先是通过传入一个类,然后根据那些属性上配置了这个注解,现在导出列做成动态的了,但是我不允许改封好的方法,所以就想着动态的去增加或删除这个注解来实现
0
yong9981
yong9981

可以动态改注解里的值,这个够用不?

咖啡加糖
咖啡加糖
不可以呢,主要是导出或导入是解析获取注解那块的代码现在不让改
0
tonglingbaoyu
tonglingbaoyu

说白了就是 Field[] 不一样而已

场景不一样 Field[]不一样

0
innerloop
innerloop

目前我接触的 应该不可以,不过你的需求,如果参数就是个class,要求你动态判断哪些需要导出,如果不能按照原来的配置走的话,就需要调用方给你一个新的参数,就是告诉你哪些是他要导出的字段或者判断条件,否则 即使能实现你说的 也没有条件区动态判断

咖啡加糖
咖啡加糖
回复 @innerloop : 好的 多谢回复 等下我试下看看
innerloop
innerloop
回复 @咖啡加糖 : 我昨天空闲的时候测试了下,你可以这样,再calsss 类上加一个全局注解,我自定了一个注解,然后 动态改注解的值,测试是可以的
咖啡加糖
咖啡加糖
目前需要导出的字段是在数据库中配置的,这个没问题,理论上动态给属性增加注解是可行的,但是没去试
0
爱De资格

这功能用你说的方式在java里实现不了,得换其他思路,比如用map什么得

0
xdev
xdev

这种设计就有问题,Class是静态的,且是共用的,如果A功能需要a属性,B功能需要b属性,到时候一并发,问题就大了,最终导出的数据项就是不可知的,这下不够你喝一壶。等着领导指着你的头,破口大骂吧!哈哈

0
jzdayz
jzdayz

主要还是java卸载类不太方便,不然就动态生成类就行了,

0
雲棲_鬆
雲棲_鬆

A类有基础属性,B类继承A拓展属性,然后多态的使用这个基类就行了(DTO 加继承 )这是JAVA面向对象思想去解决你这个问题,要是老想着删除不用的属性,那你就是在动态语言下搞比较合适

返回顶部
顶部