在Actionscript中内嵌接口实现
-
16-09-2019 - |
题
是这样的可能在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);
});
不隶属于 StackOverflow