Mne*_*nth 26 java generics warnings
我喜欢java中的泛型功能并经常使用它.但是我有一个问题,如果我使用的是尚未了解泛型的库.一个例子是servlet.如果使用ServletRequest.getParameterMap()结果将是原始地图,但它仅String包括键和String[]值.所以我想把它分配给一个Map<String, String[]>.但是对于这项任务我得到了警告.如何使用语言避免此警告,而不是简单地使用@SuppressWarnings注释抑制警告.
Mis*_*ble 41
正如其他人所说,除非通过压制它们,否则无法避免警告.问题恕我直言,要么你必须使用适用于小范围的注释来丢弃你的代码,要么全局忽略它们并冒险.
IIRC有一项建议是生成警告,其中返回原始类型而不是通话.
同时,我认为最好的方法是使用包装器方法,以便警告仅限于一个地方,可以安全地忽略它们:
class NoWarn {
public static Map<String, String[]> getParameterMap(ServletRequest r)
{
@SuppressWarnings("unchecked")
Map<String, String[]> result = r.getParameterMap();
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
注意 此答案是使用注释编辑的,注释不能在方法体内.这是不正确的,以上在语法上是正确的.我已经恢复了改变.
| 归档时间: |
|
| 查看次数: |
35342 次 |
| 最近记录: |