我想得到一个像这样的字符串:
Ljava/lang/Class;.getName()Ljava/lang/String;
(JNI风格的类型/方法描述,或称为类型描述符)
来自 AnnotationProcessor
中的 javax.lang.model.type.TypeMirror
对象。是否有任何方便的方法或库可以解析 TypeMirror
对象并生成如上所示的字符串?
我想用字符串构造一个
org.objectweb.asm.Type
来自类型描述符字符串的对象。
最佳答案
我意识到这已经有将近十年的历史了,但我已经编写了一个库来为 ASM 库添加 TypeMirror/Element 支持。看这里:https://github.com/soabase/asm-mirror-descriptor - 使用这个库,您现在可以:
MirrorClassReader reader = new MirrorClassReader(processingEnv, element);
reader.accept(myClassVisitor); // standard ASM ClassVisitor
或
String signature = SignatureMirrorType.getSignature(processingEnv, element);
关于java - 如何从TypeMirror对象获取类型描述符(JNI风格)String(注解处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12657112/