In an app I am using SharedPrefernces to save/load (serialize/deserialize) some objects.
This is the deserialization code:
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!");
}
}
But whenever I compile this project, the line:
arrayOfObjects = (ArrayList<MyObject>) input.readObject();
causes a warning that the class containing this method "uses unchecked or unsafe operations."
How can I get rid of this warning or change my code to be more safe?