我需要检索java文件的SuperClass名称(扩展一个类,我需要该类名)。为了做到这一点,我开始使用ASTParser,但我是新手,所以任何示例或插图都可能有所帮助。我使用ASTView来理解AST保存java文件结构的方式但我在尝试visit(),endvisit()函数时遇到困难。我找不到任何详细的例子。
提前致谢...
答案 0 :(得分:2)
你没有多说你已经走了多远。
在访问者中,覆盖visit(TypeDeclaration node)
,然后在节点上调用getSuperclassType()
。
如果返回true
,解析将在类型声明中继续,否则它将停止。
答案 1 :(得分:1)
您可以在代码中使用Class类的getSuperClass()方法吗?
答案 2 :(得分:0)
此代码可以正常工作..
IType type = ...;
ITypeHierarchy a = type.newSupertypeHierarchy(new NullProgressMonitor());
IType[] superTypes = a.getAllSupertypes(type);
if(superTypes.length == 1 && superTypes[0].getKey().equals("Ljava/lang/Object;")){
this.isSuperClassObject = true;
}
else{
this.isSuperClassObject = false;
}