我喜欢Java中的泛型功能,并经常使用它。但是,如果我使用尚未了解泛型的库,就会遇到问题。servlet是一个示例。如果使用ServletRequest.getParameterMap()
,结果将是原始地图,但仅String
包括键和String[]
值。所以我想将它分配给一个Map<String, String[]>
。但是对于此作业,我会收到警告。如何避免用语言来避免出现这种警告,而不是简单地通过@SuppressWarnings
注释消除警告。
正如其他人所说的那样,警告只能通过抑制来避免。恕我直言,问题是您要么必须在代码中添加适用于小范围的注释,要么在全局范围内忽略它们,否则可能会导致错误。
IIRC提出了在原始类型将被返回而不是在调用处生成警告的建议。
同时,我认为最好的方法是使用包装器方法,以便将警告限制在一个可以安全忽略它们的地方:
class NoWarn {
public static Map<String, String[]> getParameterMap(ServletRequest r)
{
@SuppressWarnings("unchecked")
Map<String, String[]> result = r.getParameterMap();
return result;
}
}
注意:此答案的编辑带有注释,注释不能在方法主体内。那是不正确的,以上在语法上是正确的。我已经还原了更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句