使用modisco找出方法参数的类型

时间:2014-05-06 19:36:32

标签: java eclipse

如何使用MoDisco查找方法参数的类型?

java.lang.String

类似foo.bar.MyTypepublic void myMethod(String s, MyType mt){/*..*/}

我已尝试将AbstractMethodDeclaration javaOperation设为myMethod,然后调用

EList<SingleVariableDeclaration> parameters = javaOperation.getParameters();

然后,对于名为parameter的{​​{1}}中的每个EList<SingleVariableDeclaration> parameters,获取parameter.getType().getType()类型的对象。

从这一点我所能做的就是得到类型本身的名称,例如org.eclipse.gmt.modisco.java.Type,并且没有提示如何获取该类型的包名称(API doc http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.modisco.doc%2Fjavadoc%2Forg%2Feclipse%2Fgmt%2Fmodisco%2Fjava%2Fclass-use%2FExpression.html)。

有什么想法吗?

感谢。

P.S。互联网上有没有像样的MoDisco文档?因为官方的API文档不是很有用,所以只是摘录一下:

  

返回'Usages In Type Access'参考列表的值。该   列表内容的类型为TypeAccess。它是双向的和它的   相反的是'类型'。

     

如果“Usages In Type Access”参考列表的含义不是   很清楚,这里真的应该有更多的描述...

当然应该!

1 个答案:

答案 0 :(得分:0)

到目前为止,我只有一个肮脏的解决方法:查找项目的所有可用类型并将其存储在List<TypeDeclaration> allTypes中。

然后我使用以下代码:

for(TypeDeclaration td: allTypes){ if(td.getName().equals(paramTypeName)){ td.getPackage(); // Do something } }

当然应该有更优雅的方式来做到这一点。任何帮助仍然非常感谢。