Why is int[] a = new int[0]; allowed?
java
Solution
It's just for reducing null checks.
You can iterate on empty array but can not iterate on null.
Consider the code:
for (Integer i: myArray) {
System.out.println(i);
}
On empty array it prints nothing, on null it causes `NullPointerException`.
Problem
Is there a reason why ``` int[] myArray = new int[0]; ``` compiles? Is there any use of such an expression? ``` myArray[0] = 1; ``` gives `java.lang.ArrayIndexOutOfBoundsException`. ``` if (myArray == null) { System.out.println("myArray is null."); } else { System.out.println("myArray is not null."); } ``` gives `myArray is not null.`. So I can't see a reason why `int[] myArray = new int[0]` should be preferred over `myArray = null;`.