resources.report.rules.pmd.PositionLiteralsFirstInCaseInsensitiveComparisons.html Maven / Gradle / Ivy
PositionLiteralsFirstInCaseInsensitiveComparisons
PositionLiteralsFirstInCaseInsensitiveComparisons
Position literals first in comparisons, if the second argument is null then NullPointerExceptions can be avoided, they will just return false.
//PrimaryExpression[
PrimaryPrefix[Name
[
(ends-with(@Image, '.equalsIgnoreCase'))
]
]
[
(../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(s):
class Foo {
boolean bar(String x) {
return x.equalsIgnoreCase("2"); // should be "2".equalsIgnoreCase(x)
}
}