我有两个不同的Java项目,其中一个有两个类:dynamicbeans.DynamicBean2
和dynamic.Validator
。
在另一个项目中,我动态加载这两个类并将它们存储在一个Object
中。
class Form {
Class beanClass;
Class validatorClass;
Validator validator;
}
然后我使用validatorClass.newInstance()
创建一个Validator
对象,并将其存储在validator
中,接下来我还使用beanClass.newInstance()
创建了一个bean对象,并将其添加到会话中。
portletRequest.setAttribute("DynamicBean2", bean);
在 Form
项目的生命周期中,我调用 validator.validate()
方法,它从会话中加载先前创建的 bean 对象(我正在运行 Websphere Portal Server)。当我尝试将此对象强制转换回 DynamicBean2
时,出现了 ClassCastException 错误。当我使用以下代码将对象从会话中取出时,问题得到解决:
faces.getApplication().createValueBinding("#{DynamicBean2}").getValue(faces);
使用.getClass()
检查它的类,我得到了dynamicbeans.DynamicBean2
。这是我想将其转换的类,但尝试时出现了ClassCastException异常。
为什么会出现这种情况?