[JAVA] Eine Geschichte, die bei NotSerializableException steckt

Phänomen

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);
    }});
}

Lösungen

Ich habe den Code wie folgt umgeschrieben:

HogeActivity.java


public void go() {
    ArrayList<AAA> list = new ArrayList();
    list.add(bbb.aaa);
    navigator.navigateToFuga(list);
}

Nachwort

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

Eine Geschichte, die bei NotSerializableException steckt
Eine kleine süchtig machende Geschichte mit def initialize
Eine Geschichte voller Javas Standardeingabescanner
[PHP] Geschichte der Ausgabe von PDF mit TCPDF + FPDI
Die Geschichte, einen Reverse-Proxy mit ProxyServlet zu erstellen
Eine Geschichte über den Versuch, mit Mockito auszukommen
Eine Geschichte über die Reduzierung des Speicherverbrauchs auf 1/100 mit find_in_batches
Eine Geschichte über die Entwicklung von ROS namens Rosjava mit Java
Die Geschichte der Erstellung einer Task-Management-Anwendung mit Swing, Java
Eine Geschichte voller Grundlagen von Spring Boot (gelöst)
Erstellen Sie einen Spielplatz mit Xcode 12
Eine Geschichte, die von String () von Interface abhängig ist und von JdkDynamicAopProxy vertreten wird
Eine verwirrte Geschichte über einen ternären Operator mit mehreren bedingten Ausdrücken
Die Geschichte des Refactorings mit einem selbstgemachten Helfer zum ersten Mal in einer Rails-App
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
Eine lustige Geschichte, die beim Import von fx-clj in einem Chaos steckt
[Hinweis] Eine Geschichte über das Ändern von Java-Build-Tools mit VS-Code
Eine Geschichte über die Verbindung zu einem CentOS 8-Server mit einem alten Ansible
Eine Geschichte über die Schwierigkeit, ein Testframework an Java 6 auszurichten
Eine Geschichte, die mit der Einführung von Web Apple Pay zu kämpfen hatte
Erstellen Sie mit Docker eine Vue3-Umgebung!
Machen Sie mit Ruby2D ein Labyrinth
Erstellen eines Java-Projekts mit Gradle
Schreiben Sie einen reaktiven Server mit Micronaut
Erstellen Sie mit Docker eine Node.js-Umgebung
Erstellen Sie mit Pleiades 4.8 eine Tomcat 8.5-Umgebung
Erstellen Sie mit JavaFX ein Diashow-Tool
Bedingte Verzweigung mit fließender Schnittstelle
Wirf eine PATCH-Anfrage mit HttpURLConnection
Starten Sie einen Stub-Server mit WireMock
Ich habe mit Swing eine GUI erstellt
Wirklich beängstigende (Java Anti-Pattern) Geschichte
Erstellen einer Timer-App mit Schlamm
Machen Sie eine Müllabfuhr mit line-bot-sdk-java
Erstellen Sie eine Webanwendung mit Javalin
Erstellen Sie eine Listenkarte mit LazyMap
Eine kleine Geschichte über reguläre Ausdrücke Teil 2
Ausnahmebehandlung mit einer Fluidschnittstelle
Bleiben Sie in einem Java Primer stecken
Erstellen Sie Ausnahmen mit einer Fluid-Schnittstelle
Erstellen Sie ein Maven-Projekt mit Befehlen
Eine kleine unruhige Geschichte mit Groovy
Ein Memorandum mit NTP (Chrony) eingestellt
Machen Sie ein Tippspiel mit Ruby
Die Geschichte eines Game Launcher mit automatischer Ladefunktion [Java]