2009-07-03 54 views
1

我需要檢索一個java文件的SuperClass名稱(它擴展了一個類,我需要該類名)。爲了做到這一點,我開始使用ASTParser,但我是新手,所以任何示例或插圖都可能有所幫助。我使用ASTView來理解AST保持java文件結構的方式,但是我在嘗試visit(),endvisit()函數時卡住了。我找不到任何詳細的例子。如何使用ASTParser從java文件中檢索SuperClass名稱?

在此先感謝...

回答

2

你沒有說太多的你有多遠了已經。

在訪問者中,覆蓋visit(TypeDeclaration node),然後在該節點上調用getSuperclassType()

如果返回true解析將在類型聲明內繼續,否則將停止。

+0

謝謝;它運作良好。有沒有任何網站可以詳細解釋這些訪問功能? – Erhan 2009-07-06 07:00:24

1

您可以使用Class類的getSuperclass之()方法,在你的代碼呢?

getSuperClass()

+0

不,實際上我devoloping一個Eclipse插件來解析所有的Java文件是選擇包下。所以我已經準備好使用ASTParser解析ICompilationUnit。我想決定我擁有哪種類型的java文件。在這個項目中,Type只能通過檢索文件擴展的超類來確定。所以我必須使用ASTParser和visit()函數。但我在這個主題上是新手。爲文件遍歷AST並從中檢索數據的任何示例都可能有所幫助。謝謝你的方式。 – Erhan 2009-07-03 14:42:42

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; 
     } 
相關問題