如何创建特定类型的数组

问题描述 投票:0回答:1

我有一个班级如下:

class com.flightstatus.SpecificationFlight 
{
    public var Airline:Airline;

    public var FlightNumber:String;

    public var SearchCodeshares:Boolean;

    public var SearchCodesharesSpecified:Boolean;

    public var TailNumber:String;
}

现在我想创建一个上面类型的数组,如下所示:var myArr:SpecificationFlight = new Array();

这种类型非常重要,因为它将通过webservice发送。

这可能在AS3中吗?如果是这样,我可以只将此功能导入AS2并使用它。

flash web-services actionscript
1个回答
0
投票

您的代码是AS2,而不是AS3,在AS3中,您不能使用名称中的句点声明类,而是使用包。 (从技术上讲,这不准确,如果在编译后改变字节码,你可能会在名称中有句号,但我怀疑你的意思)。

AS2没有类型化数组,即它只有一个Array类,它可以包含任何类型的对象。但是,您可以为自定义类定义__resolve(x)方法,并且只允许从yourClassInstance[x]代码返回特定类型的对象。不幸的是,您无法控制分配给yourClassInstance[x]的对象的类型。

在AS3中,自Flash Player 10以来有一个Vector.<T>类。显然,这个类用于创建某种类型的向量。

在可以编译为AS2和AS3的Haxe语言中有类型数组,但是如果您通过反射或通过其他未使用Haxe编译的其他代码访问编译的代码,则会在语言(编译器)级别强制执行,然后是数组仍然是无类型的(非常类似于Java中的泛型工作)。

PS。在AS的任一变体中对变量的名称使用Pascal案例是非常违反直觉的,类字段通常是驼峰式的(甚至代码突出显示器假设它们是类名,而不是变量名)。使用公共变量我们通常也是一个坏主意,但它不一定是坏的,取决于上下文,但我当然会感到震惊。

© www.soinside.com 2019 - 2024. All rights reserved.