rspec/rules/S3060/java/rule.adoc

38 lines
906 B
Plaintext
Raw Normal View History

== Why is this an issue?
There's no valid reason to test ``++this++`` with ``++instanceof++``. The only plausible explanation for such a test is that you're executing code in a parent class conditionally based on the kind of child class ``++this++`` is. But code that's specific to a child class should be _in_ that child class, not in the parent.
=== Noncompliant code example
[source,java]
----
public class JunkFood{
public void doSomething() {
if (this instanceof Pizza) { // Noncompliant
// ...
} else if (...
}
}
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
Offload the code that's conditional on this "instanceof" test to the appropriate subclass and remove the test.
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]