Bonjour,
La conception d'une bibliothèque de classes suivant le pattern "Factory" m'impose de séparer les interfaces à considérer comme étant "en lecture seule" et celles ayant également un accès en écriture. J'obtiens donc pour chaque classe le schéma suivant:
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
   |  
public interface IReadOnly {
    function get value (): Number;
}
 
public interface IReadWrite extends IReadOnly {
    function set value (v:Number): void;
}
 
internal class ReadWrite implements IReadWrite {
    public function get value (): Number {
        return m_value;
    }
    public function set value (v:Number): void {
        m_value = v;
    }
    protected var m_value:Number;
} | 
 Le problème est le suivant: je ne peux pas accéder au "getter" une fois la classe instanciée. Le compilateur de flex refuse simplement de compiler le code suivant:
	
	1 2 3 4
   |  
function doSomething (rw:IReadWrite): void {
    var num:Number = rw.value;
} | 
 Flex me dit: "1178: Tentative d'accès à la propriété inaccessible value, via la référence de type static IReadWrite."
Lorsque dans IReadWrite je remplace le setter par une simple fonction du style: 
	
	function setValue (v:Number): void
  le compilateur ne bronche plus...
Quelqu'un a t il déjà rencontré ce cas de figure ? Est ce un bug du compilateur ? Existe t il des paramètres pour le compilateur permettant de résoudre ce problème ?
Merci d'avance pour votre attention.
						
					
Partager