Bonjour,
je cherche à cloner un objet. La méthode ObjectUtil.clone() marche bien pour les objets possédant des propriétés de types primitifs mais ne marche plus lorsqu'il y a des propriétés référençant des objets de type non primitifs. En gros cette méthode ne marche quasiment jamais
J'implémente donc l'interface IExternalizable pour mes classes à sérialiser et j'utilise la directive registerClassAlias("package.vers.ma.classe", MaClasse) dans le contructeur et c'est bon ca marche si je fais cela pour toutes les propriété/sous propriétés de toutes les classes filles de ma classe à sérialiser. J'ai juste à créer dans ma classe une méthode clone() :
Donc ca marche quand toutes les prorpiétés des sous classes sont de type perso (c'est à dire que j’édite les classes pour rajouter registerClassAlias etc..) mais comment faire lorsqu'une propriété d'un objet n'est pas de type "custom" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function clone():MaClasse { var ba:ByteArray = new ByteArray(); ba.writeObject(this); ba.position = 0; return ba.readObject() as MaClasse; }
Dans mon cas de figure, une propriété d'une sous classe est de type HitData (objet de graphique). Si je laisse tel quel, j'ai l'erreur :
comment pourrais je pallier à ce problème ? Sous classer HitData et me palucher la modification de toutes les références dans mon code ou...?TypeError: Error #1034: Echec de la contrainte de type*: conversion de Object@4b5a461 en mx.charts.HitData impossible.
Merci de vos suggestions
Partager