首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在httpSession中存储扩展对象

在httpSession中存储扩展对象
EN

Stack Overflow用户
提问于 2016-03-04 08:32:45
回答 2查看 86关注 0票数 0

在下面的代码中,学习是一个学习实例,我想将它保存到http会话中

代码语言:javascript
复制
learning = new Learning(learningContext);
HttpSession webSession = request.getSession();
webSession.setAttribute("learning", learning);
Learning learnTest = webSession.getAttribute("learning");

当我运行下面的代码时,我得到:

代码语言:javascript
复制
Incompatible types
Learning learnTest = webSession.getAttribute("learning")      
required: Learning
found:    Object

是否可以将非泛型对象保存到会话中?还有其他方法可以做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-04 08:35:49

你需要像这样投射物体-

代码语言:javascript
复制
Learning learnTest = (Learning) webSession.getAttribute("learning")

您需要转换为特定类型,因为getAttribute的返回类型是对象。

票数 3
EN

Stack Overflow用户

发布于 2016-03-04 08:39:04

HttpSession.getAttribute的javadoc说:

java.lang.Object getAttribute(java.lang.String名称)返回在此会话中使用指定名称绑定的对象,如果没有在该名称下绑定对象,则返回null。

我的意思是,建筑总是会返回一个简单的物体。正如您所知道的(或希望)您已经在那里放置了一个Learning,您只需执行一个显式的强制转换:

代码语言:javascript
复制
Learning learnTest = (Learning) webSession.getAttribute("learning");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35791337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档