将X类型的值隐式强制转换为不相关的类型X.

时间:2011-08-03 12:34:32

标签: flex flash-builder

嗨,我有这个错误:

  

将类型X的值隐式强制转换为不相关的类型X

其中X是对象的类型,是的是type X to an unrelated type X。 它在我的项目中出现了6次,在3个不同的.mxml文件中,在script元素中。它是3个文件,我没有编辑,我更改的文件没有链接3个错误的文件。

这里有一行代码有问题。

var loadApplicationEvent:LoadApplicationEvent = new LoadApplicationEvent(application);

当它正在编译和其他文件我改变时它工作完美,它把我和错误。

Flash Builder或Flex的错误?或者不是?
我该怎么骑呢?

6 个答案:

答案 0 :(得分:11)

我刚刚使用Flash Builder 4.5遇到了这个问题。返回类型与应有的完全一样。

我的解决方案是通过以下方式完成项目的重建:项目 - >干净。

答案 1 :(得分:6)

我最近开始在FlashBuilder上遇到这个问题,这就是我所做的。

从:

开始
    protected var _foo:FooType;
(X) public function get foo():FooType { return this._foo; }

(其中(X)是Snote描述的形式中的错误,X = FooType)

更改为:

    protected var _foo:FooType;
    public function get foo():* { return this._foo; }

并重建。 *类型总是通过类型检查,无论如何,所以错误消失。

然后改回来:

    protected var _foo:FooType;
    public function get foo():FooType { return this._foo; }

错误消息随后消失,至少暂时消失。

到目前为止,这项技术似乎很可靠,如果烦人的话。

答案 2 :(得分:4)

我遇到了同样的问题。我通过禁用“严格类型检查

解决了这个问题

项目属性> ActionScript编译器>启用严格类型检查

答案 3 :(得分:1)

当您尝试将不同类型的对象分配给某个变量时会发生这种情况。例如,如果您尝试将字符串值('4')分配给期望int(4)的对象。查找所有给定的位置并更正类型转换。

答案 4 :(得分:0)

这是一个隐式转换,但我无法告诉您所提供信息的确切问题。

var loadApplicationEvent:LoadApplicationEvent = new LoadApplicationEvent(application);

什么类型的对象是“应用程序”以及LoadApplicationEvent构造函数需要什么参数?这就是你的隐含强制发生的地方。我的猜测是“application”与LoadApplicationEvent在其构造函数中所期望的类型不同。

答案 5 :(得分:0)

就我而言,每件事情都是正确的。因此它看起来是一个IDE问题,因为相同的代码工作了几次,另一次它向我显示了这个错误。你可以尝试几个步骤来解决这个问题 1.清除已编译的代码并重新编译。 (“项目”选项卡中有明确的选项) 2.使用相同的代码创建一个文件并删除旧文件 3.如果所有这些都不起作用,请创建另一个继承基类的类,并将期望值更改为*

例如:

   
       public class DataGroupOX extends DataGroup
       .....
       public function set itemRenderer2(value:*):void{
            value = value as IFactory;
            super.itemRenderer = value;
        }