如何使用MoDisco查找方法参数的类型?
与java.lang.String
foo.bar.MyType
和public 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”参考列表的含义不是 很清楚,这里真的应该有更多的描述...
当然应该!
答案 0 :(得分:0)
到目前为止,我只有一个肮脏的解决方法:查找项目的所有可用类型并将其存储在List<TypeDeclaration> allTypes
中。
然后我使用以下代码:
for(TypeDeclaration td: allTypes){
if(td.getName().equals(paramTypeName)){
td.getPackage(); // Do something
}
}
当然应该有更优雅的方式来做到这一点。任何帮助仍然非常感谢。