たとえば、次のコードがあります。
class Document {
// blablabla
}
そして私のメイン:
Object cl =Class.forName("Document"); // throws ClassNotFoundException: Document
クラス定義が見つからないのはなぜですか?
たとえば、次のコードがあります。
class Document {
// blablabla
}
そして私のメイン:
Object cl =Class.forName("Document"); // throws ClassNotFoundException: Document
クラス定義が見つからないのはなぜですか?
完全修飾名でクラスを参照する必要があります。
Object cl =Class.forName("org.yourpackage.Document");
私の推測では、クラスは実際にはパッケージに含まれています。Class.forName
document のように、完全修飾名を取ります。
パラメータ:
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");