检索序列化对象时,在我的应用程序越来越选中铸警告我有了一个名为型mSelectedContacts
一个成员变量,它是活动状态的一部分的活动,所以我将其保存在onSaveInstanceState()
像这如何避免捆绑
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putSerializable(STATE_SELECTED_CONTACTS, mSelectedContacts);
super.onSaveInstanceState(savedInstanceState);
}
当重新创建活动,我得到存储的Hashset像这样。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null &&
savedInstanceState.containsKey(STATE_SELECTED_CONTACTS)) {
mSelectedContacts = (HashSet<Integer>)
savedInstanceState.getSerializable(STATE_SELECTED_CONTACTS);
} else
mSelectedContacts = new HashSet<Integer>();
...
现在能正常工作,但它会产生一个未经检查的铸警告(从了java.io.Serializable到java.lang.Integer中)。有没有其他的方法可以将一个可序列化的对象保存到一个包中,然后在没有得到此警告的情况下检索它? (除抑制当然:-)吧)
不,我不认为有任何办法。我知道的唯一方法是让序列化采用一个Integer的泛型。但是,显然我们不能这样做。所以如果你知道它不会采取任何其他措施,那么压制战斗是最好的方法。尽我所知 – 2014-12-27 18:23:36