J'essaie juste de trouver la meilleure solution pour créer une copie complète de HashMap
. Il n'y a aucun objet dans cette carte qui implémente Cloneable
. Je voudrais trouver une meilleure solution que la sérialisation et la désérialisation.
Jetez un œil à Deep Cloning , sur Google Code, vous pouvez trouver une bibliothèque. Vous pouvez le lire sur https://github.com/kostaskougios/cloning .
Son fonctionnement est simple. Cela peut cloner n'importe quel objet, et l'objet n'a pas à implémenter d'interfaces, comme sérialisable.
Cloner cloner = new Cloner();
MyClass clone = cloner.deepClone(o);
// clone is a deep-clone of o
Attention cependant: cela peut cloner des milliers d'objets (si l'objet cloné a autant de références). De plus, la copie de fichiers ou de flux peut provoquer un crash de la JVM.
Vous pouvez cependant ignorer certaines instances de classes, comme streams et cetera. Cela vaut la peine de vérifier cette bibliothèque et sa source.
Je ne pense pas qu'il puisse être mis en œuvre de manière générique.
Pour l'instant, je vous propose de réécrire votre question de manière moins générale
Ce n'est pas facile, nous utilisons une sorte de solution:
1) convertissez la carte en chaîne json. (par exemple, en utilisant Google Gson)
2) reconvertissez la chaîne json en carte.
Notez qu'il y a un problème de performances, mais c'est une manière plus simple.