注释处理是错误的方法,从

Wikipedia:

When Java source code is compiled,

annotations can be processed by

compiler plug-ins called annotation

processors. Processors can produce

informational messages or create

additional Java source files or

resources,which in turn may be

compiled and processed,but annotation

processors cannot modify the annotated

code itself.

人们建议你正确的方法 – AOP.具体可以使用AspectJ. “快速结果”的方式是(如果使用Eclipse):

1)安装AJDT(AspectJ开发工具)

2)创建AspectJ项目并添加您的类和注释

3)创建方面:

public aspect Processor {

private StaticReference z;

pointcut generic()

// intercept execution of method named test,annotated with @Anno1

// from any class type,annotated with @Anno2

: execution(@Anno2 * (@Anno1 *).test())

// method takes no arguments

&& args ();

// here you have write what you want method actually does

void around () : generic() {

z.invokeToAll();

}

}

现在你可以执行测试,你会看到它的工作原理;)AJDT自动编译代码,所以不需要任何手工工作,希望这就是你所说的“魔术”;)

更新:

如果你在test()方法中的代码取决于Anno1注释值,那么在内部方面你可以通过这种方式获得它执行的类注释:

void around () : generic() {

Annotation[] classAnnotations = thisJoinPoint.getThis().getClass().getAnnotations();

String ArgumentValue = null;

for ( Annotation annotation : classAnnotations ) {

if ( annotation instanceof Anno1 ) {

ArgumentValue = ((Anno1) annotation).Argument();

break;

}

}

if ( ArgumentValue != null && ArgumentValue.equals("Option1")) {

z.invokeToAll();

}

}

其中thisJoinPoint是一个特殊的参考变量.

UPDATE2:

如果要在您的方面添加System.out.println(this),则需要在其中写入System.out.println(thisJoinPoint.getThis()),刚刚测试并可以正常工作. thisJoinPoint.getThis()返回你“这个”但不完全;实际上这是Object变量,如果你想获得任何属性,你需要投射或使用反射.而这个JoinPoint.getThis()不提供对私有属性的访问.

嗯,现在好像你的问题已经回答了,但是如果我错过任何东西,或者你以这种方式获得更多的问题/问题,请随时问;)

java注释修改_java – 使用注释修改方法相关推荐

  1. java的注释规范_Java代码注释规范

    1,单行(单行)-简短说明: ///... 单行注释: 代码中的单行注释. 最好在注释前有一个空行,并在其后加上与代码相同的缩进级别. 如果无法完成一行,则应使用块注释. 评论格式: 在行首注释: 在 ...

  2. java excel 批注_Java 添加、修改、读取、复制、删除Excel批注

    本文介绍通过Java程序来操作Excel批注的方法.操作内容包括批注添加(添加批注文本.背景色.字体.自适应等).修改.读取(文本.图片).复制.删除等. 工具:Free Spire.XLS for ...

  3. java tostring 库_java重寫toString()方法

    toString()方法是Object類的方法,調用toString()會返回對象的描述信息. 1)為什么重寫toString()方法呢? 如果不重寫,直接調用Object類的toString()方法 ...

  4. java 二分查找_Java数组之Arrays方法

    Java数组之Arrays方法,拉勾IT课小编为大家分析,JAVA数组的一些方法,提升开发水平,增强技术开发水平,不断提升个人的技术能力,在对于java开发领域,很多人都从基础做起. 1. 数组的工具 ...

  5. java集合示例_Java集合的addAll()方法和示例

    集合类addAll()方法addAll()方法在java.lang包中可用. addAll()方法用于将所有给定元素(ele)放入给定集合(co). addAll()方法是一个静态方法,可以使用类名进 ...

  6. java parsefloat 误差_Java Float类parseFloat()方法与示例

    Float类parseFloat()方法parseFloat()方法在java.lang包中可用. parseFloat()方法用于返回与给定String表示形式相对应的float值,换句话说,我们可 ...

  7. java getmethod类_Java Class类 getMethod()方法及示例

    Class类getMethod()方法getMethod()方法在java.lang包中可用. getMethod()方法用于返回Method对象,这些对象指示该类的给定公共方法或由此Class对象表 ...

  8. java newinstance 包_Java Class类 newInstance()方法及示例

    Class类newInstance()方法newInstance()方法在java.lang包中可用. newInstance()方法用于创建此Class对象表示的类的新实例. newInstance ...

  9. java怎么注释多行注释_java的注释格式和多行注释和单行注释

    所有javadoc命令都只能出现于"/**"注释中.但和平常一样,注释结束于一个"*/".主要通过两种方式来使用javADOc:嵌入的html,或使用" ...

最新文章

  1. 「每周论文推荐」 初入深度学习CV领域必读的几篇文章
  2. spark sql基本使用方法介绍(转载)
  3. 64位cad commondialog添加_常用软件分享PDF转CAD软件
  4. Eurek Ribbon Feign常见问题及解决
  5. SAP C4C和Gigya(Customer Data Cloud)的客户报表
  6. int size java_int size()
  7. 关于Jeecg互联网化dubbo改造方案(下)
  8. 拥抱开源四年的 .NET,现在怎么样了?
  9. dw属性面板 的HTML,Dreamweaver中AP Div属性面板
  10. [转]VS2005中的代码视图显示行数
  11. python字符串函数使用_Python字符串函数用法
  12. 张俊芳电机学11章计算题答案
  13. 【疫情防控毕业设计源码】精品微信小程序社区疫情防控+后台管理系统|前后分离VUE[包运行成功]
  14. 直方图匹配的数学原理
  15. 利用qq官方提供的js_sdk实现qq互联登录
  16. html连接有道词典api,调用有道翻译API
  17. Mysql 基础练习大全(建表到基本查询)
  18. HDU 6148 Valley Numer (数位dp)
  19. 英魂之刃服务器维护进不去,英魂之刃口袋版为什么进不去 进不去解决方法
  20. 关于蚂蚁花呗无法使用的问题

热门文章

  1. java键盘输入一个数_Java如何实现从键盘输入一个数?
  2. java long的包,long longValue()
  3. . mybatis指定配置文件的根元素_MyBatis框架
  4. 修改已经创建的docker容器的端口映射
  5. python默认参数不能定义为可变对象类型
  6. iOS 系统级别录屏方式调研
  7. properties文件 , properties类, 的作用
  8. Oracle存储过程基本语法介绍
  9. Runtime.getRuntime().exec()调用外部程序
  10. 开发小计之判断输入字符串类型(正则表达式)