程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 警告-Type safety: Unchecked cast from Object to List<Blog> 大家討論一下!

警告-Type safety: Unchecked cast from Object to List<Blog> 大家討論一下!

編輯:編程綜合問答
Type safety: Unchecked cast from Object to List<Blog> 大家討論一下!

先看這個警告出現的代碼吧:
Message message = new Message();
message.obj = bos;
handler.sendMessage(message);`
這是在一個線程裡發送信息到主線程。下面在主線程進行強轉:
mList.addAll((List) msg.obj);
這樣轉的時候會出現上面的警告,在網上找到了幾個方法方法:
1、方法上添加@SuppressWarnings("unchecked");
2、設置eclipse的屬性;
3、 if (obj instanceof ArrayList<?>) {
mList.addAll((List) msg.obj);
}
前兩個方法能把警告去除,只是感覺不是最好的方法,第三個方法感覺好一點,只是不能支除警告,各位有沒有更好的方法呢?

最佳回答:


編譯器行為,此處好像你無法真正阻止
你用instanceof也沒用,因為他就是一個object
一個object對於轉換的List來說是未知的,永遠都是成功與失敗兩種狀態
你所做的1、2步都是讓編譯器放過這個安全提示,而不讓你看到"小黃線"
其實無所謂了
如果轉換失敗了,你會收到ClassCastException

如果介意就用1屏掉好了,加深對數據來源處理來規避異常情況

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved