我們需要編寫一個checkstyle自定義檢查,用於驗證特定條件,以便從某個特定的類A直接或間接繼承的類。是否可以使用checkstyle API識別間接繼承? 例如,假設我們有:如何編寫涉及間接繼承的Checkstyle自定義檢查?
- C類--- ---延伸> B類
- B類--- ---延伸>類甲
在這種情況下通過查找「擴展」標記(TokenTypes.EXTENDS_CLAUSE
)並在擴展子句AST中查找B,很容易檢查C是B的子類。但是我們怎麼能知道C也是A的一個子類呢?
Java反射加instanceof是唯一的出路嗎? (在我們的案例中爲Not desirable,因爲我們必須運行數千個文件的檢查。)
PMD或其他靜態分析工具是否允許我使用該(間接繼承)條件編寫自定義檢查?