Question

est quelque chose comme cela possible en Actionscript?

Java:

URLFetcherFactory.setCreator(
    new IURLFetcherCreator() {
        public IURLFetcher create() {
            return new URLFetcher();
        }
    }
);

Actionscript:

?

Je me demandais à ce sujet et ont été incapables de trouver quelque chose qui indique qu'il est possible. Façonnés si était possible, je serais en mesure de trouver une réponse ici. Merci! roches Stackoverflow!

Était-ce utile?

La solution

Vous ne pouvez pas créer une instance d'une interface. Vous pouvez toutefois créer une classe d'usine:

public class URLFetcherCreator : IURLFetcherCreator {
    private var _cls : Class;

    public URLFetcherCreator(Class cls) {
        this._cls = cls;
    }

    public function create() : IURLFetcher
    {
        return new cls();
    }
}

Sinon, le changement setCreator d'accepter une fonction qui renvoie un IURLFetcher:

URLFetcherFactory.setCreator(
    function() : IURLFetcher {
        return new URLFetcher();
    }
);

Autres conseils

Essayez ceci:

URLFetcherFactory.setCreator(
    new IURLFetcherCreator() {
            public function create():IURLFetcher  {
                    return new URLFetcher();
            }
    }
);

Vous ne pouvez pas utiliser les classes internes anonymes en AS3. Pour les cas particuliers comme callbacks vous pouvez utiliser la fonction au lieu de classes internes anonymes.

Java:

interface Callback {
     void done(String info);
}
class Service {
     void process(Callback callback);
}
...
myService.process(new Callback() {
     void done(String info) {
          // trace(info);
     }
}

AS3:

class Service {
     public function process(callback:Function):void;
}
...
myService.process(function(info:String):void {
     trace(info);
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top