Hi Nadarajah,
Well an Object can be anything, including an Object[] (an Object[] cannot be cast to an Object though).
In your case, the variable result was declared of type Object, and so you could skip the casting in this line:
Object result = client.execute("wp.getUsersBlogs", params);
And then, after you stored the result of client.execute in a variable which can store any type, you're like, ok I know that the Object is actually an Object[] so do this:
Object[] resultProper = (Object[])result;
But you could have just as easily done this:
Object[] result = (Object[]) client.execute("wp.getUsersBlogs", params);
I do'nt get why the array should be casted to an object array??
Get it now? There was no array to cast to an object array as far as the compiler is concerned (even though YOU knew the Object result had an Object[], the compiler only knew that the variable result was of type Object and therefore could hold any type).
Then, since YOU knew that it actually is an Object[], you told the compiler "hey, that Object is actually an Object[]", and you did this by casting.
Hope that helps.
Justin