Flex数据类型转换

0 apache-flex flash casting flex3 actionscript-3

关于flex中的类型转换,我有一个非常简单的问题.

这两次转换有什么区别.

1)var arrCol:ArrayCollection = new ArrayCollection(event.result.dataset.table);

2)var arrCol:ArrayCollection = event.result.dataset.table as ArrayCollection;

我已经看到第二次转换比第一次转换效果更好(次数更多).

Con*_*ner 5

我认为"转换"一词并不正确.在您的代码片段中,存在实例化和强制转换.

案例1)正在实例化(创建新的类实例).要确定它,请查看new关键字.参数是Array根据ArrayCollection构造函数文档的实例.

案例2)是铸造.在你的情况下event.result.dataset.table应该是一个ArrayCollection.否则价值arrCol将是null.另一种铸造方式是:

var arrCol:ArrayCollection = ArrayCollection (event.result.dataset.table);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果event.result.dataset.table不是ArrayCollection,将有运行时异常.因为ArrayArrayCollection不兼容的类型而不能将它们互相投射.