關於如何安裝和運行自定義checkstyle,我有另一個StackOverflow question。我已經學會了如何做到這一點,並且我會很快更新這個答案並提供詳細的說明。現在我無法定製我的支票。以下是我的代碼。問題是我希望看到完全合格的包是一個字符串(例如com.amir.foo
) - 但是當我運行getText()
或只是toString()
時,我得到一些模糊的結果([checkstyle] package set:ANNOTATIONS)。有誰知道如何使用它來達到預期的效果?創建自定義Checkstyle
import com.puppycrawl.tools.checkstyle.api.*;
public class MyCheck extends Check
{
FullIdent packageDeclaration;
public int[] getDefaultTokens() {
return new int[]{TokenTypes.PACKAGE_DEF};
}
public void visitToken(DetailAST ast)
{
switch(ast.getType()) {
case TokenTypes.PACKAGE_DEF:
System.out.println("got package!");
visitPackage(ast);
break;
default:
System.out.println("naughty!");
}
}
private void visitPackage(DetailAST pack) {
packageDeclaration = FullIdent.createFullIdentBelow(pack);
System.out.println("package set to : " +packageDeclaration);
}
}
感謝您的快速回復。你能解釋一下這段代碼在做什麼嗎?爲什麼我們要getLastChild然後getPreviousSibling? –
請注意,由於您在代碼中使用了package關鍵字,因此此代碼無法編譯。 –