Map session = ActionContext.getContext().getSession();
session.put("user", user);
此代码生成警告: _类型安全:方法 put(Object, Object) 属于原始类型 Map。对泛型类型 Map
Map<String, Serializable> session = (Map<String, Serializable>)ActionContext.getContext().getSession();
session.put("user", user);
此代码生成警告: 类型安全:未检查从 Map 到 Map
getSession 方法是Struts2的,不能修改。我想避免使用 @SuppressWarnings 因为其他警告可能有用。
我想世界上所有的 Struts2 用户都面临着同样的问题……有一个优雅的解决方案吗?
原文由 Nicolas Raoul 发布,翻译遵循 CC BY-SA 4.0 许可协议
除了@SuppressWarnings(“unchecked”),我认为没有其他办法。我相信你可以把它放在有问题的线的正上方,它只会抑制那条线。
编辑:你也可以做
Map<?, ?> session = ActionContext.getContext().getSession();
但我不确定你有多愿意这样做;您将无法以这种方式将任何内容放入地图中(因为编译器无法检查您放置的内容的类型),只能从中读取。