1

アプリでは、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();

このメソッドを含むクラスが「チェックされていない操作または安全でない操作を使用している」という警告が発生します。

この警告を取り除く、またはコードをより安全に変更するにはどうすればよいですか?

4

4 に答える 4