Okay, so if I have this code
double a=1.5;
int b=(int)a;
System.out.println(b);
Everything works fine, but
Object a=1.5;
in
When you declare the object Object a = 1.5 you can tell by checking System.out.println(a.getClass()) that the object is in fact cast to a Double instance. This can again be cast to a double because of unboxing conventions. After that the double value can be cast to an int.
There are however no unboxing conventions to cast from a Double instance to an int, so the runtime will issue an ClassCastException if you try and do that. It cannot directly go from Double to Integer.