2011-11-07 164 views
3

好像在AS3,我可以在理论上,可以只包含某些数据类型delare数组:阵列VS矢量

private var my_array:Array.<String>; 

产生这样的错误:
1199:用非参数化类型

类型参数

然而

private var my_vector:Vector.<String>; 

就好了。

有没有办法使这个工作与数组?

+0

是什么,你要完成什么呢? –

+0

我想声明数组,同时指定它们是什么类型。像一串字符串,一个数组等等...... – Frank

+1

这就是'Vector'的用途。强类型数组。 –

回答

4
[ArrayElementType("String")] 
public var newStringProperty:Array; 

[ArrayElementType("Number")] 
public var newNumberProperty:Array; 

http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html
不幸的是,这种阵列不提供访问像载体的元素类型的方法做:

var strings:Vector.<String> = new Vector.<String>(); 
strings.push('hello world'); 
trace(strings[0].charAt(2)); 
+0

该元数据标签仅适用于MXML数组定义。这实际上是编译时间约束,而不是运行时执行。如果在课堂中使用,则不会做任何事情。 –

+0

它在纯粹的as3项目中什么都不做,它在.as类中为我工作,扩展了'UIComponent' – www0z0k

4

不幸的是,没有。

“通用”语法是一次性的,仅给出Vector。这让我很难过。如果可以的话,我会在各地使用泛型。

这里是阵列来构造更discussion on the issue.

0

你可以只传递一个元素。如果你需要参数化的“数组”,使用矢量。

2

目前数组完全不接受类型声明。