キャストで質問があります。

ぶっちゃけた話、class Aのインスタンスを java.lang.Object にキャストして渡し、
受け側で再び java.lang.Object -> class A にキャストしたいのですが、
どうも思うようにできません。

public class A extends java.lang.Object {
}

としたときに、イベントクラスを以下のように作って、

public class MyEvent extends EventObject {
Object obj;

MyEvent(Object source, Object obj) {
super(source);

this.obj = obj;
}

Object getObject() { return obj; }
}

これに、任意のオブジェクトを持たせてイベントの受け渡しを行いたい場合、

MyEvent e = new MyEvent(this, new A());

として、イベントオブジェクトに A のインスタンスを持たせて、
イベントの受け側で getObject() して A のインスタンスを使いたいのですが、

// イベントハンドラ内で
A a = e.getObject();

みたいにしたいのですが、ClassCastException が出ます。
ダウンキャストの問題でしょうか?

ただ、Vectorコンテナでは任意のクラス -> Object にキャストして、
その逆のキャスト(Object -> 任意のクラス)もできているようなのですが、
どうやったら実現できるのでしょうか?