Pau*_*ley 7 java generics legacy-code
我正在使用JSON.simple从Java生成JSON输出.但是每当我调用jsonobj.put("this","that")时,我在Eclipse中看到一个警告:
类型安全:方法put(Object,Object)属于原始类型HashMap.应该参数化对泛型类型HashMap的引用
干净的修复是如果JSONObject是通用的,但由于它不是,我不能添加任何泛型类型参数来解决这个问题.我想关掉的一些警告越好,这样加入"@SuppressWarnings("未登记")",以大量的是没有吸引力的方法,但是我有,除了忍受的警告,任何其他选择吗?
这是一个选项.它有点难看,但允许您将抑制警告的范围仅限于单个操作.
添加一个执行未选中的强制转换的函数,并禁止对其执行警告:
@SuppressWarnings("unchecked")
private final static Map<Object,Object> asMap(JSONObject j)
{
return j;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在没有编译警告的情况下调用它:
asMap(jsonobj).put("this", "that");
Run Code Online (Sandbox Code Playgroud)
这样,您可以确定不会抑制实际想要查看的任何警告.