Le projet Android en question utilise déjà Serializable pour transmettre des informations entre les modules internes.Envoi d'objets parcelables comme sérialisables
Je travaille sur un de ces modules qui utilise également des bibliothèques externes pour calculer les itinéraires de navigation.
J'ai besoin de passer un de ces objets « externes » à un autre module, ce n'est pas Serializable donc je ne suis pas en mesure d'envoyer normalement. Le programmeur avant moi avait transformé tous les objets non sérialisables en variables statiques dans une classe Wrapper, je ne suis pas sûr que ce soit une bonne idée même si les modules doivent rester actifs tout le temps.
Ceci est la classe wrapper Serializable:
private static Road road;
private NavigationStep firstNavigationStep;
/**
* To send the route information to the App. Here is everything the app needs to display the
* data to the user.
* @param road the route the user is to follow
* @param firstNavigationStep the users location and the current Step.
*/
public CurrentRoad(Road road, NavigationStep firstNavigationStep){
this.firstNavigationStep = firstNavigationStep;
this.road = road;
}
L'écriture de la route comme transitoire me fait perdre des données, en train d'écrire une classe wrapper tout pour la route serait trop de travail (il est nécessaire de construire des superpositions, de sorte qu'un beaucoup de géométrie est à l'intérieur et provient d'une bibliothèque externe, donc je peux oublier quelque chose). Changer le projet en entier pour Parcelable n'est pas non plus réaliste.
Y a-t-il une solution? Est-ce que la meilleure façon de vraiment sauver ce dont j'ai besoin est statique?
Il existe déjà un service de messagerie décrit dans notre architecture, il utilise Serializable. C'est un MessageManger écrit par quelqu'un d'autre sur le projet. Je suis un peu nouveau dans l'équipe et le projet s'étend sur plus d'une entreprise donc ajouter une bibliothèque externe n'est pas si simple – Raeglan