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:
Any array, including int[] is actually an Object. This is why you can cast to Object. However, int is a primitive, so it doesn't extend Object, so you cannot cast to Object[].
int[]
Object
int
Object[]