[JAVA] Une histoire bloquée avec NotSerializableException

phénomène

Quand j'ai essayé de stocker la classe AAA Serializable dans un ArrayList et de l'écrire dans un fichier, j'ai obtenu une NotSerializableException. (Bien sûr, tous les champs AAA sont également sérialisables)

Le code à ce moment-là est le suivant. (Veuillez me pardonner que le code est que ...)

Navigator.java


public class Navigator {
    AppCompatActivity activity;


    public void navigateToFuga(ArrayList<AAA> list) {
        // FugaActivity.Créer une intention dans createIntent
        //Écrivez des hoges dans un fichier et compressez le chemin du fichier dans une intention
        activity.startActivity(FugaActivity.createIntent(activity, list));
    }
}

HogeActivity.java


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

Solution

J'ai réécrit le code comme suit:

HogeActivity.java


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

Épilogue

Je fais souvent des choses comme l'emballage de données dans l'intention pour la transition d'écran de l'activité. L'application a planté car j'ai mis une grande quantité de données inattendues dans l'intention. Donc, j'ai temporairement répondu par la méthode ci-dessus, mais j'étais en difficulté avec une exception. En regardant le débogueur,

FugaActivity.Le type de données de ArrayList reçu par createIntent est HogeActivity$C'était quelque chose comme 1, alors j'ai pensé que c'était une erreur et je l'ai corrigée, et cela a fonctionné.


 Il a fallu plusieurs heures pour le résoudre, je dois donc éviter de me retrouver avec le même problème à l'avenir.

 Je l'ai écrit dans l'article car il semble que personne ne souffre de la même cause même si je le vérifie avec NotSerializableException, mais je me demande comment je dois le vérifier. .. ..


Recommended Posts

Une histoire bloquée avec NotSerializableException
Une petite histoire addictive avec def initialize
Une histoire emballée avec le scanner d'entrée standard de Java
[PHP] Histoire de la sortie de PDF avec TCPDF + FPDI
L'histoire de la création d'un proxy inverse avec ProxyServlet
Une histoire d'essayer de s'entendre avec Mockito
Une histoire sur la réduction de la consommation de mémoire à 1/100 avec find_in_batches
Une histoire sur le développement de ROS appelé rosjava avec java
Histoire de créer une application de gestion de tâches avec Swing, Java
Une histoire remplie des bases de Spring Boot (résolu)
Créez un terrain de jeu avec Xcode 12
Une histoire à laquelle j'étais accro avec toString () d'Interface qui était proxy avec JdkDynamicAopProxy
Une histoire confuse sur un opérateur ternaire avec plusieurs expressions conditionnelles
L'histoire du refactoring avec un assistant personnel pour la première fois dans une application Rails
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
Une histoire amusante coincée dans le désordre lors de la tentative d'importation de fx-clj
[Note] Une histoire sur la modification des outils de compilation Java avec VS Code
Une histoire sur la connexion à un serveur CentOS 8 avec un ancien Ansible
Une histoire sur la difficulté à aligner un cadre de test avec Java 6
Une histoire qui a eu du mal avec l'introduction de Web Apple Pay
Créez un environnement Vue3 avec Docker!
Créez un labyrinthe de fouilles avec Ruby2D
Construire un projet Java avec Gradle
Ecrire un serveur réactif avec Micronaut
Créer un environnement Node.js avec Docker
Créer un environnement Tomcat 8.5 avec Pleiades 4.8
Créer un outil de diaporama avec JavaFX
Branchement conditionnel avec une interface fluide
Lancer une requête PATCH avec HttpURLConnection
Lancer un serveur stub avec WireMock
J'ai créé une interface graphique avec Swing
Histoire vraiment effrayante (anti-motif Java)
Créer une application de minuterie avec de la boue
Faire un rappel de garbage avec line-bot-sdk-java
Créer une application Web avec Javalin
Créer une carte de liste avec LazyMap
Une petite histoire d'expressions régulières Partie 2
Gestion des exceptions avec une interface fluide
Restez coincé dans un Java Primer
Créez des exceptions avec une interface fluide
Une petite histoire troublée avec Groovy
Un mémorandum avec NTP (chrony) set
Faites un jeu de frappe avec ruby
L'histoire de la création d'un lanceur de jeu avec une fonction de chargement automatique [Java]