当注释应用于方法时,这似乎过多。
如何将注解@SuppressWarnings(“unchecked”)用于单个转换而不是整个方法?
在此示例中,我刚刚检查了强制转换是否安全,因此我继续进行强制转换,但收到了令人讨厌的警告。
@Override
public void execDetails()
{
Map<Integer, ResponseList<?>> responseMap =
new HashMap<Integer, ResponseList<?>>();
// ... omitted code ...
ResponseList<?> responseList = responseMap.get(requestId);
Class<?> elementType = responseList.getElementType();
if (elementType == ExecutionDetail.class)
((ResponseList<ExecutionDetail>)responseList).add(new ExecutionDetail());
}
最佳答案
您可以将@SuppressWarnings
用于单个变量声明:
public static List<String> foo(List<?> list) {
List<String> bad = (List<String>) list;
@SuppressWarnings("unchecked")
List<String> good = (List<String>) list;
return good;
}
但是,它必须在局部变量声明的位置: