rspec/rules/S3062/rule.adoc
2022-02-04 16:28:24 +00:00

23 lines
514 B
Plaintext

Combine inheritance and array covariance, and the results can potentially get nasty. Together, they allow you to write array stores that will compile, but cause errors at runtime.
== Noncompliant Code Example
[source,text]
----
public class Bowl {
abstract class Fruit { }
class Apple : Fruit { }
class Orange : Fruit { }
Fruit [] fruits;
public void fillBowl(){
fruits = new Apple[30];
fruits[0] = new Orange(); // Noncompliant; this compiles but raises exception at runtime
}
}
----