implementazione di interfaccia Inline in Actionscript
-
16-09-2019 - |
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!
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