S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

ダイナミックプロキシとインターフェース

ダイナミックプロキシクラス
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/reflection/proxy.html
ここの記述にからすると、「ダイナミックプロキシは、クラスに定義されたインターフェースからプロキシクラス(プロキシオブジェクト)を生成する」という動作と読める。
となれば、インターフェースが定義されていないクラスに対して、プロキシオブジェクトが生成できている(≒プロキシ元のクラスでキャストできる)のがおかしいように見えるような?
記述のなかで、「interfaces 配列の引数または要素が null の場合は、NullPointerException がスローされます」とあるから、インターフェースが定義されていない場合は例外が発生するのか?


ということは、SpringのBeanNameAutoProxyCreatorクラスの実装として、
プロキシ元のクラスにインターフェースが...
・定義されている場合は、プロキシクラスが、インターフェースを実装してる。
・定義されていない場合は、プロキシクラスが、プロキシ元のクラスを継承してる。
って感じで、プロキシクラスを生成しているってことかいな?