-1

クラスBのメソッドを呼び出すクラスAがあります。

今、クラス B を動的に生成しています。新しいクラス B が生成されるたびに、A はクラス B の新しいバージョンを呼び出す必要があります。今、カスタム クラス ローダーを使用してクラス B をロードしていますが、クラス B もデフォルト クラスを使用してロードされます。クラス A 内のローダー。

そのため、カスタム クラス ローダーによってロードされたクラスは無関係になります。クラス B は、カスタム クラス ローダーを使用してのみロードする必要があります。これは、クラス B を複数回リロードする必要があるためです。

どうやって進める?

クラスBをどこからロードする必要がありますか? それはクラス A 内からですか、それともクラス A がロードされる前からですか? また、クラスAはクラスBのメソッドを呼び出すため、カスタムクラスローダーも使用してクラスAをロードする必要がありますか?

4

1 に答える 1

0

A が、B のロード元と同じクラスローダーを介してロードされていることを確認してください。

プリミティブのみを渡している場合を除き、クラスローダ間でインスタンスを渡す ClassCastExceptions が発生します。

于 2014-09-02T06:18:32.473 に答える