在一个应用程序中,我使用 SharedPrefernces 来保存/加载(序列化/反序列化)一些对象。
这是反序列化代码:
private void loadData() {
String str = sharedPreferences.getString(PREF_TAG, null);
byte[] bytes = Base64.decode(str, Base64.DEFAULT);
try {
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectInputStream input = new ObjectInputStream(bais);
arrayOfObjects = (ArrayList<MyObject>) input.readObject();
} catch (Exception e) {
Log.i("BUG", "error decoding serialized objects: " + e.toString());
}
if (arrayOfObjects == null) {
Log.i("BUG", "serious problem!");
}
}
但是每当我编译这个项目时,这行:
arrayOfObjects = (ArrayList<MyObject>) input.readObject();
导致包含此方法的类“使用未经检查或不安全的操作”的警告。
如何摆脱此警告或更改我的代码以更安全?