
resources.report.rules.pmd.SimplifyConditional.html Maven / Gradle / Ivy
SimplifyConditional
SimplifyConditional
No need to check for null before an instanceof; the instanceof keyword returns false when given a null argument.
//Expression
[ConditionalOrExpression
[EqualityExpression[@Image='==']
//NullLiteral
and
UnaryExpressionNotPlusMinus
[@Image='!']//InstanceOfExpression[PrimaryExpression
//Name/@Image = ancestor::ConditionalOrExpression/EqualityExpression
/PrimaryExpression/PrimaryPrefix/Name/@Image]
and
(count(UnaryExpressionNotPlusMinus) + 1 = count(*))
]
or
ConditionalAndExpression
[EqualityExpression[@Image='!=']//NullLiteral
and
InstanceOfExpression
[PrimaryExpression[count(PrimarySuffix[@ArrayDereference='true'])=0]
//Name[not(contains(@Image,'.'))]/@Image = ancestor::ConditionalAndExpression
/EqualityExpression/PrimaryExpression/PrimaryPrefix/Name/@Image]
and
(count(InstanceOfExpression) + 1 = count(*))
]
]
Example(s):
class Foo {
void bar(Object x) {
if (x != null && x instanceof Bar) {
// just drop the "x != null" check
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy