在jdk6.0+Eclipse3.2+MyEclipse的开发环境中下列语句出现错误:
Object sessionName = "usersession";
Object sessionValue = "testtest";
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(sessionName,sessionValue);有如下错误提示:
类型安全:方法 put(Object, Object)属于原始类型 Map。应该将对通用类
型 Map<K,V> 的引用参数化请问要如何修改.
Object sessionName = "usersession";
Object sessionValue = "testtest";
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(sessionName,sessionValue);有如下错误提示:
类型安全:方法 put(Object, Object)属于原始类型 Map。应该将对通用类
型 Map<K,V> 的引用参数化请问要如何修改.
这个的时候
getSessionMap().new HashMap(String,String);
如果
Map<String,String> map = new HashMap<String,String>();
正确的话,
解释如下
Map<String,String> map ==> 申明一个Map接口变量,这个Map接口规定每一个条目 是 <String,String>new HashMap<String,String>(); ==> 新建一个HashMap对象,这个对象的条目是 <String,String>
只是泛型明确了对象类型,这样在使用的时候,取对象时不用造型,也避免了ClassCastException
这样的用法也是有同样的错误信息提示.
String userKey="test";
String userValue="password";
Map<String,String> map = new HashMap<String,String>();
map.put(userKey,userValue);
使用:
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(userKey,map.get(userKey));
这样的使用方法对不对?如果对,错误提示信息依旧存在.
getSessionMap()
返回Map<String,String>类型,估计是你返回了原始类型
map = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
map.put(sessionName,sessionValue);
Object sessionValue = "testtest";
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(sessionName,sessionValue)按照搂主的意思,我觉得用该这样申明HaspMap
Map<Object,Object> map = new HashMap<Object,Object>()
这样可以适用于比较多的类型。
这种方式付值出现如下警告信息:
Type safety: The expression of type Map needs unchecked conversion to
conform to Map<String,String>
这个强制转化为String
(String)(map.get(userKey))
warnning 信息不用管的,还是觉得1.4简单,没有这么多麻烦
可以考虑传参之前转行,输入正确的K, V
如果是string的看
toolscool(无情) ( ) 信誉:82 Blog