0

次のコードのように、クラスのパスをどのように言及できますか?

Class cl=Class.forName("SomeClass");

これは、「SomeClass」が呼び出し元のクラスの同じディレクトリにある場合にうまく機能します。しかし、別のディレクトリからクラスをチェックする方法については、その構文がのようxxxx.yyyy.classになっているのを見ましたが、それらの「x」と「y」が何を表しているのか理解できませんでした。助けてください。前もって感謝します。

4

3 に答える 3

3

完全修飾クラス名を使用してください。たとえば、パッケージに含まれているJavaSEStringクラスを使用してこれを行うには次のようにします。java.lang

Class clazz = Class.forName("java.lang.String");
于 2012-08-28T18:45:48.040 に答える
1

それらはパッケージ名xxxを表します。yyyパッケージは通常、パッケージと同じ名前のディスク上のディレクトリで表されます。package xxx.yyyクラスファイルを作成するときは、ファイルの先頭に記載することで、クラスがどのパッケージに入るのかを指定できます。

"SomeClass"パッケージ名なしで参照するとSomeClass、デフォルトパッケージで指定されたクラスをロードしようとします。

于 2012-08-28T18:45:55.660 に答える
0

ClassNotFoundException 例外が発生する可能性があることを確認してください。ただし、Class.forName を使用してください。これはランタイム例外であるため、キャッチする必要はありません。これは、クラスへのパスが正しいかどうかを知る方法です。問題は、クラスが見つからない場合、コードでおかしなことが起こる可能性があることです。

Class.forName(com.my.package.ClassName)
于 2012-08-28T18:52:11.820 に答える