当像这样投射矢量时......
var v1:Vector.<String> = new Vector.<String>();
v1.push("foo");
var v2:Vector.<Object> = Vector.<Object>(v1)
v1.push("bar");
trace(v1); //foo,bar
trace(v2); //foo
... 正如您在跟踪输出中看到的那样,创建了 Vector 的副本。
但是当您将第 3 行更改为...
var v2:Vector.<*> = Vector.<*>(v1)
...没有创建副本,v1 和 v2 都指向同一个对象,跟踪输出都将是“foo,bar”。
为什么?不应该有某种一致的行为吗?