J'essaie de créer un système de traitement distribué sur Android via Bluetooth, donc j'ai créé une classe qui implémente Serializable, fait une méthode pour sérialiser et désérialiser cet objet afin que je puisse l'envoyer en tant que ByteArray . Le problème est que j'ai besoin que chaque objet ait un code différent à exécuter sur les autres périphériques. J'ai pensé à surcharger une méthode, puis à exécuter cette méthode sur l'autre périphérique, mais quand je le fais, j'obtiens une exception NotSerializableException. Y a-t-il un moyen de régler cela? Ou sinon, existe-t-il un moyen alternatif d'envoyer différents morceaux de code à exécuter sur d'autres appareils?Méthodes de substitution en classe implémentant Serializable
Répondre
Le mécanisme de sérialisation par défaut est destiné à fournir un moyen de transférer l'état d'un objet plutôt que la LOGIQUE réelle de la classe à partir de laquelle l'objet est dérivé. Par conséquent, le code contenu dans Methods n'est pas (au moins par défaut) Serializable.
SOLUTIONS
Il y a un certain nombre d'approches et/ou stratégies que vous pouvez adopter pour atteindre ou au moins approximativement les résultats dont vous avez besoin; la ligne de fond est le serveur aura besoin d'une copie du fichier de classe que vous souhaitez exécuter:
Méthode dynamique:
Vous pouvez envoyer la « classe » ou le pot complet au serveur dynamique en tant que norme fichier puis utilisez la sérialisation pour envoyer les DÉTAILS (ie nom, signature, etc.) de la méthode que vous souhaitez appeler du client.
Méthode statique:
Placez une copie du pot d'application sur le chemin de classe du serveur dans le cadre de votre processus de construction.
Bien sûr, vous pouvez également implémenter le Externalizable Interface pour définir votre propre mécanisme de sérialisation et sémantique. Faites-moi savoir si vous avez besoin de plus d'informations sur cette méthode ou l'une des autres méthodes que j'ai décrites.
- 1. Supprimer le champ de l'ancienne classe java implémentant Serializable
- 2. Substitution de méthodes de classe/d'instance en JavaScript
- 3. Classe design: classe implémentant une interface implémentant une autre interface
- 4. La classe qui implémente Serializable doit implémenter certaines méthodes?
- 5. Substitution/Modification de la méthode de la classe finale implémentant l'interface java
- 6. Méthodes de substitution et héritage en Java
- 7. Classe Android implémentant les méthodes OnClick et setOnClick
- 8. Substitution des méthodes de ASIHTTPRequest
- 9. Méthodes de substitution pour l'implémentation du cache
- 10. classe avec [Serializable] Attributute
- 11. Qu'est-ce que JVM comprend quand il voit une classe implémentant Serializable
- 12. Comment faire classe avec des méthodes de substitution dans Android?
- 13. Méthodes de substitution contenant des paramètres génériques
- 14. Substitution de méthodes dans hashset
- 15. Substitution de méthodes non virtuelles?
- 16. Méthodes de substitution NDK Android
- 17. Propriétés de substitution de la classe abstraite
- 18. classe implémentant boucles itérateurs
- 19. En implémentant l'interface, il hérite des méthodes non désirées
- 20. classe implémentant Parcelable
- 21. IncompatibleClassChangeError: classe implémentant
- 22. Carte de classe implémentant Interface
- 23. Méthodes de substitution conditionnelle dans Java
- 24. Erreur Serializable Même après insertion [Serializable] Avant classe
- 25. Méthodes de substitution avec le sous-type
- 26. ProGuard n'obstrue pas complètement la classe Serializable
- 27. interface statique/singleton classe implémentant en C#
- 28. Substitution des méthodes de Django associées
- 29. Création dynamique d'une classe implémentant une interface
- 30. F # Substitution publique des méthodes protégées
Si je comprends bien, vous allez écrire une application qui reçoit des fragments de code d'autres périphériques, le code étant supposé être arbitraire? Si c'est le cas, commencez par travailler sur un concept de sécurité ... –
C'est vrai, et je le ferai, mais pour l'instant pouvez-vous aider pour cette question spécifique? – jpmastermind
Je ne suis pas si sûr que le framework Android supportera cela. Mais techniquement, vous pouvez vouloir regarder ceci: http://stackoverflow.com/questions/7980133/converting-a-given-class-lets-say-java-lang-object-to-a-byte-array-is -it-po –