获取VariableElement的类名和包名

4

我在注解处理器(在process()方法中)获取了一个ExecutableElement对象的参数,并得到了一个VariableElement对象ve。这个VariableElement对象所代表的类在不同情况下可能是不同的。

如何在编译时将ve的完整包和类名作为字符串获取?

(例如,如果ve表示一个String类的参数,则需要获取字符串"java.lang.String"

编辑:根据目前的答案,似乎我的表述还不够清晰。 ve不是一个String对象,而是一个VariableElement对象,它代表方法调用(ExecutableElement)中的参数元素。我需要获取有关VariableElement ve所代表的信息(特别是参数类的类信息),而不是ve对象本身。


String name = ve.getClass().getName(); - Youcef LAIDANI
YCF_L你的代码片段没有获取VariableElement对象内部内容的类,而是获取了VariableElement本身的类。 - Aman Singh
这可能是 https://dev59.com/nWsz5IYBdhLWcg3wn5ba 的重复问题吗? - meriton
1
你尝试过查看 asType() 然后使用 TypeMirror 的 toString() 吗? - mroman
@mroman 你的回答有效!发表一个答案,我会接受的。 - Aman Singh
1个回答

7
您可以使用VariableElementasType()方法获取TypeMirror对象,然后toString()方法应返回类型的“源代码”表示。还有一些实用函数在Types中,可与TypeMirror一起使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接