【发布时间】:2015-04-15 09:21:03
【问题描述】:
我在学习asm,发现了两个有趣的api
在org.objectweb.asm.ClassVisitor
/**
* Visits an annotation on a type in the class signature.
*/
public AnnotationVisitor visitTypeAnnotation(int typeRef,
TypePath typePath, String desc, boolean visible);
在org.objectweb.asm.MethodVisitor
/**
* Visits an annotation on a type in the method signature.
*
*/
public AnnotationVisitor visitTypeAnnotation(int typeRef,
TypePath typePath, String desc, boolean visible);
但是什么情况我们会使用这两种方法..
我们如何在 java 中生成带有an annotation on a type in the class/method signature 的类?
我试试
public @Z Integer testMethod(String testParam)
但是@Z 仍然被visitAnnotation 调用而不是visitTypeAnnotation...
什么情况下asm会调用visitTypeAnnotation?
谢谢~
【问题讨论】:
-
Z有@Target(ElementType.TYPE_USE)注释吗? -
@immibis 哦~~~,谢谢 immibis,我明白了..
Type Annotation是 Java 8 的新功能,我学习了一些Type Annotation信息并升级到 Java 8,标记 @987654332 @ to @Z 它可以工作......谢谢你~(我仍然使用jdk7)
标签: java java-8 java-bytecode-asm