2012-04-06 96 views
0

我正在開發eclipse插件,所以我找到api文檔和google他們,它只包含這樣的方法isClass()isInterface()和ICompilationUnit,但我想挖深抽象類,代碼如如何用ICompilationUnit來判斷抽象類

public boolean isAbstract(ICompilationUnit icu) { 
    //TODO 
} 

任何人都可以幫我嗎?

回答

2

首先,您需要一個org.eclipse.jdt.core.IType的實例,因爲一個ICompilationUnit可以包含幾種類型。 ICompilationUnit.getTypes()將爲您提供本單元中所有類型的列表。 ICompilationUnit.findPrimaryType()將爲您提供本機的主要類型。

你的日常應該看起來像以下:

public boolean isAbstract(ICompilationUnit icu) throws JavaModelException { 
    final IType type = icu.findPrimaryType(); 
    return (type != null) 
     ? Flags.isAbstract(type.getFlags()) 
     : false; 
} 

其中Flagsorg.eclipse.jdt.core.Flags

+0

謝謝你,根據你的指令解決,但我也想問你在哪裏可以找到代碼片段或相關的教程,你可以給鏈接? – clevertension 2012-04-07 00:51:53

+0

其實這方面沒有太多好的教程。我目前的項目涉及JDT,所以我設法發現了一些技巧。在大多數情況下,您應該仔細分析JDT類和它們的包的sorce代碼。至於'Flags.isAbstract()','ICompilationUnit.getFlags()'javadoc中提到了'Flags'類。這個技巧也可以在日食論壇上找到。 http://www.vogella.de/articles/EclipseJDT/article.html是基本的,但有用的教程。它還包含一些鏈接。 – 2012-04-07 09:24:46