這段代碼是blunderous的,因爲它向一個數組中添加了一個類,然後試圖將它拉出來並操作它,就好像它是一個對象一樣。爲什麼Flex讓我把一個類當作一個對象
private function fail(event:Event):void
{
var myObj:MyClass;
var a:ArrayCollection = new ArrayCollection();
var x:MyClass;
var y:MyClass;
myObj = new MyClass;
a.addItem(myObj);
a.addItem(MyClass); // !!BAD!!
x = a[0];
y = a[1];
}
當我意外地做了這件事,我花了我一輩子纔看到我做錯了什麼。部分原因是錯誤信息沒有告訴我任何我能理解的東西:
TypeError: Error #1034: Type Coercion failed: cannot convert com.ibm.ITest::MyClass$ to com.ibm.ITest.MyClass.
at ITest/fail()[C:\work_simple01\ITest\src\ITest.mxml:51]
at ITest/___ITest_Button5_click()[C:\work_simple01\ITest\src\ITest.mxml:61]
所以我的問題是,爲什麼這行標記!!壞!以上甚至允許?我期望在這裏編譯時錯誤。自編譯以來,我一定不知道這個用法。它是什麼?