0

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

+0

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é ... –

+0

C'est vrai, et je le ferai, mais pour l'instant pouvez-vous aider pour cette question spécifique? – jpmastermind

+0

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 –

Répondre

0

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.

Questions connexes