【问题标题】:Flex 4.6 transform generic Object to Class InstanceFlex 4.6 将通用对象转换为类实例
【发布时间】:2012-05-30 23:49:45
【问题描述】:

嘿,当我有一个不属于任何其他类的“对象”实例时,如何将它转换为类实例?

示例

一个简单的用户类

public class User
{
    public var name:String;
}

当我尝试投射时

var obj:Object = new Object;
obj.name = "Alex";

var user:User = User(obj);

Flex 给了我这个错误:

TypeError:错误 #1034:类型强制失败:无法转换 Object@97a52b1 到 models.User。

【问题讨论】:

    标签: actionscript-3 apache-flex flex4.6


    【解决方案1】:

    可能是不可能的,因为 User 不会(像在 Java 中那样自动)扩展 Object 类。

    如果你想扩展它,那么 .name 属性将通过类型转换丢失。

    因此,您必须创建一个新的 Object 对象并“手动”填充它。

       myObj = {};
       for (var key:String in myUser) 
                 myObj[key] = myUser[key];
    

    【讨论】:

    • 感谢您的回答。我通过在 User 类上使用“填充”方法解决了这个非常相似的问题,我可以将通用对象传递给它。
    猜你喜欢
    • 2012-08-02
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    相关资源
    最近更新 更多