So this works:
int i; Object a = (Object) i; int[] t; Object b = (Object) t; String[] s; Object[] t = (Object[]) s;
But this does not:
An object is a class instance or an array.
It is stated in The JLS section 4.3.1.
Now, int[] is an array, which is an Object.
int[]
String[] s;
and
differ in following way:
Former can point to an array of String objects, but latter can point to an array of primitive int.
String
int