0

私のコードに何が起こったのか途方に暮れています。これは以前は機能していました:

MyClass obj = (MyClass) Class.forName(extendedType).getConstructors()[0].newInstance(scan);

しかし、今はロードされていません。代わりに、この行に到達し、失速してから終了します。私はそれをデバッグし、この行のどこかで起こっていることを知っています。どんな提案でも大歓迎です。

注: 今日、コードをリファクタリングしましたが、それ以来、名前付けの問題がいくつか発生しています。主に、パッケージ名を大文字から小文字に変更しました (つまり、Myclass.class から myclass.class に変更しました)。これが何かに影響したかどうかはわかりません。

Update extendedType は、ロードするクラスの完全なパッケージとクラス名を提供する文字列です。たとえば、myclass だけでなく com.biz.myclass とします。その意図は、ユーザーの選択に応じて、親クラスの子クラスをロードすることです。これを行う方法は他にもありますが、なぜこれが突然機能しなくなったのか知りたいです。そしてそれは Class.forName で失速します

4

1 に答える 1

0

パッケージのリファクタリングは、多くの IDE で完璧ではありません。

システムに存在する実際のフォルダ名を確認してください。

フォルダ名が以前と同じであれば、問題があります。

元のパッケージ名が次の場合:

マイパッケージ

そして、次のようにリファクタリングしました。

マイパッケージ

その後、手動で移動して、それに応じてフォルダー構造の名前を変更する必要がある場合があります。

それを試してみてください。

于 2013-03-08T11:06:35.860 に答える