0
我正在開發eclipse插件,所以我找到api文檔和google他們,它只包含這樣的方法isClass()isInterface()和ICompilationUnit,但我想挖深抽象類,代碼如如何用ICompilationUnit來判斷抽象類
public boolean isAbstract(ICompilationUnit icu) {
//TODO
}
任何人都可以幫我嗎?
我正在開發eclipse插件,所以我找到api文檔和google他們,它只包含這樣的方法isClass()isInterface()和ICompilationUnit,但我想挖深抽象類,代碼如如何用ICompilationUnit來判斷抽象類
public boolean isAbstract(ICompilationUnit icu) {
//TODO
}
任何人都可以幫我嗎?
首先,您需要一個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;
}
其中Flags
是org.eclipse.jdt.core.Flags
。
謝謝你,根據你的指令解決,但我也想問你在哪裏可以找到代碼片段或相關的教程,你可以給鏈接? – clevertension 2012-04-07 00:51:53
其實這方面沒有太多好的教程。我目前的項目涉及JDT,所以我設法發現了一些技巧。在大多數情況下,您應該仔細分析JDT類和它們的包的sorce代碼。至於'Flags.isAbstract()','ICompilationUnit.getFlags()'javadoc中提到了'Flags'類。這個技巧也可以在日食論壇上找到。 http://www.vogella.de/articles/EclipseJDT/article.html是基本的,但有用的教程。它還包含一些鏈接。 – 2012-04-07 09:24:46