У меня есть фрагмент кода для создания экземпляра универсального типа следующим образом:Предупреждения в инстанцировании общего типа
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")
Какова причина этого предупреждения и что такое решение?