0

私の疑問を正確に定義する方法がわからないので、質問が既に出されている場合は、しばらくお待ちください.

オブジェクトを動的にインスタンス化する必要があるとしましょう。このオブジェクトは、既知の不変クラス A のサブクラスのインスタンスであることは間違いありません。特定の実装クラスを動的に取得できます。

ターゲットクラスについて何も知らないかのようにリフレクションを使用する方が良いでしょうか、それとも次のようなことを行うことが望ましい/可能でしょうか:

A obj = (Class.forName("com.package.Sub-A")) new A();

どこSub-A extends A?目的は、リフレクションのオーバーヘッド時間を回避することです...

4

1 に答える 1

1

通常、これは次の方法で行われます

Class.forName("com.package.Sub-A").getConstructor(param types).newInstance(param values)

リフレクション オーバーヘラドを回避するには、コンストラクター オブジェクトをキャッシュするだけです。

于 2012-07-11T09:01:31.653 に答える