我需要获取在java文件(ICompilationUnit
)中声明的字段类型。
for (IType type : compilationUnit.getTypes()) {
for (IField iField : type.getFields()) {
typesig = iField.getTypeSignature()
}
}
getTypeSignature()
- 返回类型名称,但没有包名。
可以使用以下方法获取包名:
IType.resolveType(String typeName)
但这种方法很重,需要一些时间才能完成。
是否有其他方法可以获取完整的类型名称(包含)?
答案 0 :(得分:0)
使用JDT的Java模型时,问题中的方法(使用IType.resolveType())是正确的。
如果需要解析多种元素的类型,请考虑使用具有已解析绑定的AST。这样你只需支付一次解决价格。
答案 1 :(得分:0)
要使用类型签名,请使用以下代码:
Signature.getSignatureSimpleName(iField.getTypeSignature())