是这样的可能在Actionscript中?

爪哇:

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

的ActionScript:

?

我一直在想这件事,一直无法找到任何表明这是可能的。想通如果的可能,我希望能在这里找到答案了。谢谢!计算器石头!

有帮助吗?

解决方案

您不能创建接口的实例。你可以,但是,创建一个工厂类:

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

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

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

可选地,改变setCreator接受返回IURLFetcher一个功能:

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

其他提示

尝试这种情况:

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

可以不使用AS3中匿名内部类。 在特殊情况下,像回调,您可以使用函数而不是匿名内部类。

爪哇:

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);
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top