[英]Warning in instantiating a generic type
我有一个用于实例化泛型类型的代码段,如下所示:
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")
该警告的原因是什么?解决方法是什么?
一个警告就是这样。 一个警告。 有时警告是无关紧要的,有时则是无关紧要的。 它们通常被用来引起您对编译器认为可能是但可能不是问题的注意。
在强制转换的情况下,在这种情况下总是会发出警告。 如果您完全确定特定的类型转换将是安全的,则应考虑在该行之前添加这样的注释:
@SuppressWarnings (value="unchecked")
这仅意味着该类的类型仅在运行时才知道,因此可能会出现这样的情况:您认为应该获得一个X类型的类,但实际上它是其他类型的(它在编译时不知道)因为X可以是任何类型)。
基本上,您可以忽略此警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.