The following show different ways of instantiating and returning a primitive array. However, for some reason, the last one doesn't work. Is there a valid explanation for this inconsistency? Why doesn't the last block work?
Block 1
int[] a = new int[] {50};
return a; // works fine
Block 2
int[] a = {50};
return a; // works fine
Block 3
return new int[] {50}; // works fine
Block 4
return {50}; // doesn't work