Domanda

E 'qualcosa di simile possibile in Actionscript?

Java:

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

Actionscript:

?

mi sono chiesto su questo e sono stato in grado di trovare qualsiasi cosa che indica che è possibile. Figured se era possibile, sarei in grado di trovare una risposta qui. Grazie! rocce StackOverflow!

È stato utile?

Soluzione

Non è possibile creare un'istanza di un'interfaccia. È possibile, tuttavia, creare una classe di fabbrica:

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

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

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

In alternativa, il cambiamento SetCreator ad accettare una funzione che restituisce un IURLFetcher:

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

Altri suggerimenti

Prova questo:

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

Non è possibile utilizzare le classi interne anonime in AS3. Per i casi particolari come callback è possibile utilizzare la funzione, invece di classi interne anonime.

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);
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top