我有一个用于实例化泛型类型的代码片段,如下所示:
public class GenericMessageMapper<I ,X>
{
public X xFromI(I imf)
{
// do thing by imf argument
Class<X> clazz = (Class<X>)((ParameterizedType)
this.getClass()
.getGenericSuperclass())
.getActualTypeArguments()[1];
X x = clazz.newInstance();
}
}
上面的代码工作正常,但通过此消息在代码上显示警告(准备变量行MyEclipse
上的黄色下划线):clazz
Type safety: Unchecked cast from Type to Class<X>
我在方法的上面临时添加了以下注释xFromI
:
@SuppressWarnings("unchecked")
此警告的原因是什么,解决方案是什么?