アプリでは、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();
このメソッドを含むクラスが「チェックされていない操作または安全でない操作を使用している」という警告が発生します。
この警告を取り除く、またはコードをより安全に変更するにはどうすればよいですか?