孫までディープコピー2

また引っかかってしまったので書く。
前のエントリで、Vector.は確かにVector.にコピーされた。だが、Vector.<A> (AはObject以外の任意のクラス)もVector.になるらしい。Arrayでも同様の現象が起こる。(wonderfl)

しかも、ディープコピーされたはずの各要素は、AではないObjectになってしまっている。つまり as A などで戻せないということだ。次のコードの2行目はfalseになってしまう。

var a : A = new A();
ObjectUtil.copy(a) is A;

この場合の打開策は、AをObjectとして実装し直してしまうか、Aにdeepcopyメソッドを実装してしまうぐらいしかないと思う。