[英]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.