我的規則要求我僅將它們應用於沒有「get」作爲其名稱一部分的方法。換句話說,我的規則只需要適用於班級中的非getter方法。我知道拿到的所有非的getter方法一抱,我可以用如何爲PMD Xpath規則設置嵌套條件
//MethodDeclarator[not(contains(@Image,'get'))]
不過,我不知道,我插入我的邏輯規則的語法。它是不是像
//MethodDeclarator[
not(contains(@Image,'get'))
'Some Rule Statements'
]
我看到了使用。在一些示例代碼中[]中的語句開頭。他們用於什麼?
在我的特殊情況下,我需要將以下幾件組合在一起,但到目前爲止我還無法完成。
件1:
//PrimaryExpression[not(PrimarySuffix/Arguments)]
片2:
//MethodDeclarator[not(contains(@Image,'get'))]
件3:
//PrimaryExpression[PrimaryPrefix/@Label='this']
我今天早上閱讀更多有關XPath和使他們正確地結合現在。我也意識到PMD中的AST比XML更具欺騙性。查看RAW xml並使用XPath跟蹤它比在PMD文檔中使用示例更明智。我很難知道何時使用/ Name和@Image,因爲我沒有意識到他們在XML中的位置。 – ttback
@ttback:是的,我要指出的是,您需要比XPath更多的知道PMD的語義。 –
是的,我已經非常接近能夠在節點集中找到一個節點。如果你想,你可以檢查我的最新問題。如果沒有相交和關於如何使用axis的知識,知道我是否正在使用我認爲正在使用的節點集合,這變得非常煩人。 – ttback