我有一個泛型類型的實例化一個代碼片段如下:警告中實例化一個泛型類型
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")
這個警告的原因是什麼?解決方案是什麼?