why does the following line of code give me a compile error?:

Code:
Long l =  (Class.forName("java.lang.Long")) ((Object) ( new Long (123)));
shouldn't this guarantee that the objecty passed to the variable will be cast down into a "Long"?