最早的代码是这样的。
Map mInfo = (Map)tempSession.get("mInfo");
在JDK1.5下有警告,说不能用raw type 应该用 generic type后来代码改成
Map<String,Object> mInfo = (Map<String,Object>)tempSession.get("mInfo");
结果还是有警告:Uchecked cast from Object to Map请问怎么改才能没有警告出现啊?客户要求没有警告,也不能屏蔽警告。
Map mInfo = (Map)tempSession.get("mInfo");
在JDK1.5下有警告,说不能用raw type 应该用 generic type后来代码改成
Map<String,Object> mInfo = (Map<String,Object>)tempSession.get("mInfo");
结果还是有警告:Uchecked cast from Object to Map请问怎么改才能没有警告出现啊?客户要求没有警告,也不能屏蔽警告。
=====================
HttpSession
2 session.get(); 肯定返回Object类型,这个是没有泛型的,你把它强制转化为带泛型的,也会警告你,转化可能有问题。
其实你可以想一下, 为了通用,你指定Object都可以存入
那个你怎么保证取出来的肯定是Map<String,Object>呢? 这个警告正好是一个提示。我认为需要!
========================================
从session里拿对象总会发生类型转换的问题。如何重写呢,就算用Hashtable等,都没发避免类型转换啊.
既然他不熟悉,骗他还不简单吗!你把有关的东西封装成一个.jar包,专门来屏蔽这种警告的,然后你就说这是一个网上的一个常用工具包就行了,不告诉他,他也不知道。
反正他也不懂。
内行骗外行还不简单。
这是泛型的优点,而不是缺点。
class A{
public List<String> l;
public A(List<String> l){
this.l = l;
}
}
这时,你再如下处理就不会有警告了 List<String> myList = new ArrayList<String>();
A test = new A(myList);
request.getSession().setAttribute("test", test); A test1 = (A)request.getSession().getAttribute("test");
List<String> myList2 = test1.l;
这样警告信息就被拿掉了。