我想得到一个像:
的字符串Ljava/lang/Class;.getName()Ljava/lang/String;
(JNI样式类型/方法描述,或称为类型描述符)
来自javax.lang.model.type.TypeMirror
中的AnnotationProcessor
对象。是否有任何Convenience方法或库,它解析TypeMirror
对象并生成如上所示的字符串?
我想用String来构造一个
来自类型描述符字符串的org.objectweb.asm.Type
对象。
答案 0 :(得分:0)
我意识到这已经有将近十年的历史了,但是我已经编写了一个库来向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);
答案 1 :(得分:-1)
打开控制台,转到已编译的类f.e. :cd ./build/classes。然后输入javap -s NameOfYourCompiledClass.class(在控制台中),你就可以得到你的描述符了。根据您的情况,我将使用您的自定义类扩展此TypeMirror类,重载所有方法,编译项目并按照以下说明为您的新类