0

たとえば、次のコードがあります。

class Document {

// blablabla

}

そして私のメイン:

Object cl =Class.forName("Document"); // throws ClassNotFoundException: Document

クラス定義が見つからないのはなぜですか?

4

2 に答える 2

5

完全修飾名でクラスを参照する必要があります。

Object cl =Class.forName("org.yourpackage.Document");
于 2013-11-06T07:23:29.450 に答える
2

私の推測では、クラスは実際にはパッケージに含まれています。Class.forNamedocument のように、完全修飾名を取ります。

パラメータ:
className - 目的のクラスの完全修飾名。

例えば:

package foo.bar;

class Document {}

...

Class<?> clazz = Class.forName("foo.bar.Document");

ネストされたクラスの場合は、それも考慮する必要があります。

package foo.bar;

class Outer {
    static class Document {
    }
}

...

Class<?> clazz = Class.forName("foo.bar.Outer$Document");
于 2013-11-06T07:24:22.727 に答える