2

変数からクラスをインスタンス化しようとしていて、いくつかのテスト コードを書きました。しかし、残念ながら、それは機能していません。コードは次のとおりです。

Object co1 = new CommandDownloadHttp();
Class cc1 = Class.forName("CommandDownloadHttp");
Object co = cc1.newInstance();

残念ながら、2行目でクラッシュしjava.lang.ClassNotFoundExceptionます.

私が間違っていることを教えてください。

4

2 に答える 2

7

CommandDownloadHttp はクラスの完全な名前ですか。つまり、パッケージはありませんか? パッケージがある場合は、以下を含めます。

Class.forName("foo.bar.CommandDownloadHttp");

(実際のコードでこれを行うにはもっと良い理由があると思いますが、明らかにこの場合、リフレクションによってクラスを実際にフェッチする必要はありません:)

于 2009-02-19T11:53:45.493 に答える
3

あなたのクラスはパッケージですか?そして、このパッケージはインポートされていますか? したがって、1 行目で機能します。ただし、Class.forName("my.package.to.CommandDownloadHttp") に完全修飾名が必要です。

于 2009-02-19T11:54:40.937 に答える