我可以用javaparser解析泛型方法吗?如果可能的话,怎么做?例如,这是我的方法:
public static < E > void printArray( E[] inputArray )
{
// Display array elements
for ( E element : inputArray ){
System.out.printf( "%s ", element );
}
System.out.println();
}当我使用MethodVisitor解析并使用MethodVisitor.getParameters().getType时,我得到了E[],但我需要知道它是对象。它是可定位的?
发布于 2014-12-07 17:21:28
唯一的方法是创建自己的解析器。JavaParser返回BeginLine方法,唯一的方法是解析这一行。
public static < E > void printArray( E[] inputArray )当我们删除所有的修饰符(公共和静态)和下一个不等于返回类型(Void)的值时,我们得到并且知道E是Object。
发布于 2015-02-16 20:02:43
如果我正确理解了您的问题,您希望JavaParser告诉您,E没有扩展任何东西,所以它可能是一个对象。这是JavaParser所不能做的,因为它只是一个解析器:它构建AST,但它不尝试解析符号、分析类型等等,因此它不能用于您的目标。您可能想尝试类似Eclipse的东西(它在Eclipse之外也是可用的,只要付出一些努力.)
免责声明:我是JavaParser的撰稿人
https://stackoverflow.com/questions/27280652
复制相似问题