-
Hi everybody,
Using java 1.5 I have discovered that I don't know how to realize an explicit cast of objects. I have read about generics, but still I don't know how to do an explicit cast in my problem case.
Suppose I have a bean class A and a bean subclass B of A. I create instances of classes A and B in main() using static methods of an utility class MyBeanFactory.
public class A{
}
public class B extends A{
}
public class MyBeanFactory{
public static A createAInstance(parameters...){}
}
In main() I try to create instances of B class using explicit cast, but I always get a runtime exception like
java.lang.ClassCastException:cannot convert from a to B....
My code is :
B instanceOfB = (B)MyBeanFactory.createAInstance(.....);
Please tell how do solve this problem of explicit cast of objects in java 1.5. (I'm using jdk 1.5_07)
Best regards,
Oana
-
B is a subclass of A. However, you create an A instance and then try to cast it to B. This is as illegal as creating an Object instance and trying to cast to to a String.
Create a B instance, and you will see that it will work to cast it to an A (the reverse, and correct, case).
/Niklas
-
I've encountered a similar issue where I would like to 'cast' or read a method to java.lang.Enum.Modifier:
import java.lang.Enum.*;
...
Integer _m = Employee.class.getClass().getModifiers();
Modifier _modifier = _m; //illegal
Modifier _modifier = (Modifier] _m
NOTE: Is it possible to use HTML tags to distinguish code snippets?