获取ICompilationUnit

时间:2015-07-19 10:12:25

标签: java eclipse

我需要获取在java文件(ICompilationUnit)中声明的字段类型。

for (IType type : compilationUnit.getTypes()) {
  for (IField iField : type.getFields()) { 
     typesig = iField.getTypeSignature()
  }
}

getTypeSignature() - 返回类型名称,但没有包名。

可以使用以下方法获取包名: IType.resolveType(String typeName) 但这种方法很重,需要一些时间才能完成。

是否有其他方法可以获取完整的类型名称(包含)?

2 个答案:

答案 0 :(得分:0)

使用JDT的Java模型时,问题中的方法(使用IType.resolveType())是正确的。

如果需要解析多种元素的类型,请考虑使用具有已解析绑定的AST。这样你只需支付一次解决价格。

答案 1 :(得分:0)

要使用类型签名,请使用以下代码:

Signature.getSignatureSimpleName(iField.getTypeSignature())