我有一个泛型类型的实例化一个代码片段如下:警告中实例化一个泛型类型
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")
这个警告的原因是什么?解决方案是什么?