![](/img/trans.png)
[英]How to avoid generics warnings when using “raw types” as static field / return type?
[英]How to avoid Eclipse warnings when using legacy code without generics?
我正在使用JSON.simple从Java生成JSON输出。 但是每当我调用jsonobj.put(“this”,“that”)时,我在Eclipse中看到一个警告:
类型安全:方法put(Object,Object)属于原始类型HashMap。 应该参数化对泛型类型HashMap的引用
干净的修复是如果JSONObject是通用的,但由于它不是,我不能添加任何泛型类型参数来解决这个问题。 我想关闭尽可能少的警告,所以在许多方法中添加“@SuppressWarnings(”unchecked“)”是没有吸引力的,但除了忍受警告之外我还有其他选择吗?
这是一个选项。 它有点难看,但允许您将抑制警告的范围仅限于单个操作。
添加一个执行未选中的强制转换的函数,并禁止对其执行警告:
@SuppressWarnings("unchecked")
private final static Map<Object,Object> asMap(JSONObject j)
{
return j;
}
然后你可以在没有编译警告的情况下调用它:
asMap(jsonobj).put("this", "that");
这样,您可以确定不会抑制实际想要查看的任何警告。
您可以拥有每个项目的编译器设置,并且可以将这些警告更改为忽略 。
编写一些辅助方法或库的包装类。 仅将@SuppressWarnings("unchecked")
添加到这些帮助程序。 然后使用帮助程序执行与库的交互。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.