我有類似:類型強制失敗
class A { }
class B extends A { }
然後我想投的A
到B
一個實例:
var a:A = obtainAInstance();
var b:B = B(a);
爲了這個,我得到以下錯誤:
TypeError: Error #1034: Type Coercion failed: cannot convert A to B.
這可能是什麼原因造成的?
我有類似:類型強制失敗
class A { }
class B extends A { }
然後我想投的A
到B
一個實例:
var a:A = obtainAInstance();
var b:B = B(a);
爲了這個,我得到以下錯誤:
TypeError: Error #1034: Type Coercion failed: cannot convert A to B.
這可能是什麼原因造成的?
你a
對象是A
實例,但由於A
是父類,而不是B
,它不可能是一個B
實例。因此,你不能執行這樣的演員。
如果你的函數返回一個B
例如,你可以投a
回到B
,並獲得其所有B
成員,因爲對象是實際上是一個B
:
var a:A = obtainBInstance();
var b:B = B(a);
嘗試var b:B = a as B;
var o:Object = new Object();
var ed:EventDispatcher = o as EventDispatcher;//this works
//var ed:EventDispatcher = EventDispatcher(o); //this causes an error
但是,如果調用屬性未定義爲0,那麼您可能會遇到此類B
實例的問題- A
用於什麼? 'ed'將會是空的。這不會比錯誤更有用。 – BoltClock