
resources.report.rules.pmd.PositionLiteralsFirstInComparisons.html Maven / Gradle / Ivy
PositionLiteralsFirstInComparisons
PositionLiteralsFirstInComparisons
Position literals first in String comparisons - that way if the String is null you won't get a NullPointerException, it'll just return false.
This rule is defined by the following XPath expression:
//PrimaryExpression[
PrimaryPrefix[Name
[
(ends-with(@Image, '.equals'))
]
]
[
(../PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Literal)
and
( count(../PrimarySuffix/Arguments/ArgumentList/Expression) = 1 )
]
]
[not(ancestor::Expression/ConditionalAndExpression//EqualityExpression[@Image='!=']//NullLiteral)]
[not(ancestor::Expression/ConditionalOrExpression//EqualityExpression[@Image='==']//NullLiteral)]
Example:
class Foo {
boolean bar(String x) {
return x.equals("2"); // should be "2".equals(x)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy