我想知道为什么以下内容会发出有关不安全/未经检查的操作的警告:
Map<String, ProxySession> sessionMap = (Map<String, ProxySession>) se.getSession().getServletContext().getAttribute("myattribute");
演员阵容有错吗?我不明白我在这里缺少什么。
附:我不想摆脱警告,我想了解不安全的操作。
Thanks!
这意味着强制转换将检查返回的对象是否是Map
某种形式,但它无法检查其内容的任何内容,因为类型擦除。在执行时,地图是地图是地图......所以如果有人把Map<Integer, String>
相反,进入您的会话,该行代码仍然会成功。仅当您尝试使用其中一个条目时才会出现错误,例如通过迭代条目并获取键和值。
欢迎来到 Java 泛型的古怪世界:(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)