1. ホーム
  2. java

Javaのリフレクション 実装クラスの作成

2023-09-18 07:53:01

質問

Class someInterface = Class.fromName("some.package.SomeInterface");

を実装した新しいクラスを作成するにはどうしたらよいでしょうか? someInterface ?

新しいクラスを作成し、それを関数に渡す必要があります。 SomeInterface を引数として必要とする関数に渡す必要があります。

どのように解決するのですか?

インターフェースを実装しているように見せかけるものをその場で作ることは、実はそれほど難しいことではありません。以下のように java.lang.reflect.Proxy を実装した後 InvocationHandler を実装し、あらゆるメソッドコールを処理します。

もちろん、実際のクラスは BCEL .

もしこれがテスト目的であれば、以下のようなモッキングフレームワークを見るべきでしょう。 jMock イージーモック .