如何在AS3中定义类似C ++的模板?我有一个地图类(2d数组),我想在项目中重复使用,但单元格数据是一个不同的类,具体取决于项目或实现;
关于在不同的实现中共享代码还有很多其他原因,但我希望有类似的东西:
map = new MyMap<MyCell>();
如果它只是Flash 10并不重要:-p
干杯, 克里斯
答案 0 :(得分:9)
没有模板,但动态类型和使用类作为值可能足以满足您的需要。
您可以创建一个接受类的类并将其存储为实例变量。
class MyMap {
var myClass:Class;
function MyMap(c:Class){
myClass = c;
}
}
然后你把课程喂给它......
map = new MyMap(MyCell);
然后在方法中,您可以引用该类。
// Inside MyMap somewhere
var someWhatever:Object = new myClass();
// or
var someWhatever:Object = Object(myClass).someCachingSchemeStaticMethod();
// or whatever.
答案 1 :(得分:5)
您无法制作自己的模板类。您在整个AS3中唯一拥有的是Vector
。
在JIRA上有同样的开放feature request。随意upvote。