Als ich versuchte, die Serializable-Klasse AAA in einer ArrayList zu speichern und in eine Datei zu schreiben, erhielt ich eine NotSerializableException. (Natürlich sind auch alle AAA-Felder serialisierbar)
Der Code zu diesem Zeitpunkt lautet wie folgt. (Bitte vergib mir, dass der Code so ist ...)
Navigator.java
public class Navigator {
AppCompatActivity activity;
public void navigateToFuga(ArrayList<AAA> list) {
// FugaActivity.Intent in createIntent erstellen
//Schreiben Sie Hoges in eine Datei und packen Sie den Dateipfad in eine Absicht
activity.startActivity(FugaActivity.createIntent(activity, list));
}
}
HogeActivity.java
public void go() {
navigator.navigateToFuga(new ArrayList<AAA>(){{
add(bbb.aaa);
}});
}
Ich habe den Code wie folgt umgeschrieben:
HogeActivity.java
public void go() {
ArrayList<AAA> list = new ArrayList();
list.add(bbb.aaa);
navigator.navigateToFuga(list);
}
Ich mache oft Dinge wie das Packen von Daten in die Absicht für den Bildschirmübergang der Aktivität. Die App ist abgestürzt, weil ich eine große Menge unerwarteter Daten in die Absicht eingefügt habe. Also habe ich vorübergehend mit der oben genannten Methode geantwortet, aber ich hatte Probleme mit einer Ausnahme. Mit Blick auf den Debugger,
FugaActivity.Der von createIntent empfangene Datentyp von ArrayList ist HogeActivity$Es war so etwas wie 1, also dachte ich, es sei ein Fehler und korrigierte ihn, und es funktionierte.
Es hat ein paar Stunden gedauert, um es zu lösen, also muss ich in Zukunft vermeiden, in dasselbe Problem verwickelt zu werden.
Ich habe in dem Artikel geschrieben, weil es scheint, dass niemand unter der gleichen Ursache leidet, selbst wenn ich es mit NotSerializableException überprüfe, aber ich frage mich, wie ich es überprüfen soll. .. ..
Recommended Posts