2

私は、サッカーリーグにサインアップしたキッズを追跡する同僚向けの Android アプリを作成しています。現在、名簿を保存/シリアル化して後で逆シリアル化するのに問題があります。シリアライズしているオブジェクトは、Player オブジェクトの配列です。カスタム プレーヤー クラスは serializable を実装しているため、それらの配列はシリアル化しても問題ないはずです (私の知る限り)。

私のシリアル化/保存方法:

    String ser = SerializeObject.objectToString(currentRoster.getRosterArray());
    if (ser != null && !ser.equalsIgnoreCase("")) {
        SerializeObject.WriteSettings(this, ser, "playerRoster");  //.dat extension
    } else {
        System.out.println("Object not saved");
        SerializeObject.WriteSettings(this, "", "playerRoster");
    }   

私の逆シリアル化方法:

    String ser = SerializeObject.ReadSettings(this, "playerRoster");
    if (ser != null && !ser.equalsIgnoreCase("")) {
        Object obj = SerializeObject.stringToObject(ser);
        // Then cast it to your object and 
        if (obj instanceof Player[]) {
            // Do something
            loadedRoster = (Player[]) obj;
            System.out.println(loadedRoster[0]);
        }
    }

私がアプリで取得している結果は、逆シリアル化されたときの配列内のすべてのプレーヤーの専門用語です。私の質問は、データを正しく保存してロードしているかどうか、または何かを忘れているかどうかです。(私はそれをきれいに保つためにフィラーコードと例外処理のいくつかを省略しました)助けてくれてありがとう!

4

1 に答える 1