日期:2014-05-18  浏览次数:20733 次

Strut2中 Map<String,String> session的问题,求讲清楚

                //得到当前登录到系统中的用户ID
Map<String, String> session = ActionContext.getContext().getSession();
String userId = (String) session.get("userId");

如上代码,想获取当前登录到系统中的用户ID,然后进行处理,但是红色字部分报错
Type mismatch: cannot convert from Map<String,Object> to Map<String,String>
小弟,不太清楚这两句话,的具体含义,请教各路朋友,这个返回值的问题,改成
Map<String,Object> session = ..的话是不是更不对了

------解决方案--------------------
泛型Map是key,value结构的,<String,String>前边是key的类型,后边Value的类型。
<String,String>就代表key必须是String,值也必须是String
<String,Object>就代表key必须是String,值也必须是Object.
而Object是JAVA所有对象的父类,所以值里边你放什么都可以。
他这么定义就因为key我们放的是名字,所以用String,但是值这部分,我们可能需要放不同的东西,所以用Object
------解决方案--------------------
ActionContext.getContext().getSession()获得的不是一个String对象,而是一个Object对象。