var o:Object = {title: 'asad'};
var v:ImageItemVO = o as ImageItemVO;
var v:ImageItemVO = ImageItemVO(o); // throws an error
我的ImageItemVO有一个名为title的公共var。 此代码运行后,“var v”为null。为什么? 有人能给我一个如何让它发挥作用的例子吗?
答案 0 :(得分:5)
as
运算符用于将对象从一种类型转换为另一种类型,但仅在对象可以通过这种方式转换时才有效。如果不能,它会给你null
。另一种转换方式(在最后一行上执行它的方式),如果无法转换对象,则会出现错误。
在这种情况下,您根本不想进行投射,因此投射不起作用。相反,你可能想做这样的事情:
var v: ImageItemVO = new ImageItemVO();
v.title = "asad";
或者如果有更多属性,并且您不想手动输入所有属性:
var o: Object = { ... };
var v: ImageItemVO = new ImageItemVO();
for (var key: String in o) {
v[key] = o[key];
}
此代码会将o
中的所有媒体资源复制到v
。