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.forName将完全限定名称作为文档:

参数:
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 回答