从session获取对象强转record

ren1314 发布于 2016/09/27 09:23
阅读 194
收藏 0

@JFinal 你好,想跟你请教个问题:从session获取userInfo对象,改变对象的属性值后将对象重新放入session,代码如下:Record map = (Record)getSessionAttr("userInfo");
map.set("C_COMPANY_NAME", cc.getCCompanyName());
setSessionAttr("userInfo", map);
setSessionAttr("C_COMPANY_STATUS", cc.getCCompanyStatus()); 
redirect("/companyCenter/index.html");    在第一步强转的时候抛异常,异常信息如下java.lang.ClassCastException: com.dlb.dao.WebUser cannot be cast to com.jfinal.plugin.activerecord.Record
at com.dlb.index.AccountController.saveServiceInfo(AccountController.java:320)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.jfinal.aop.Invocation.invoke(Invocation.java:73)
at com.dlb.config.GlobalInterceptor.intercept(GlobalInterceptor.java:17)
at com.jfinal.aop.Invocation.invoke(Invocation.java:67)
这里是否可以这样强转,这个在测试环境是可以的,但是今天升到正式环境抛了以上异常,谢谢.

加载中
0
JFinal
JFinal

     强转的前提是被强转的对象类型可以转成目标类型,通常就两种情况:一是转化成原本的类型,二是转化成原本类型的父类(接口、抽象类归类于此)

    java 是强类型语言,只有在满足上述条件时才可以转化

返回顶部
顶部