小编Sau*_*abh的帖子

为什么整个包结构需要包含在Class.forName()中?

我已经开发了一个普通的Java项目,我想明白之间的差别ClassNotFoundExceptionNoClassDefFoundException.我发现了一个奇怪的行为,就是我在调用时需要包含整个包结构Class.forName().

请参阅以下代码:

package org.com;

public class MainApp {

    public static void main(String[] args) {
        try {
             Class cls = Class.forName("org.com.MainApp");
             System.out.println("Class = " + cls.getName());
         } catch(ClassNotFoundException ex) {
             System.out.println(ex.toString());
         }
    }

}
Run Code Online (Sandbox Code Playgroud)

如果我使用Class.forName("MainApp")而不是Class.forName("org.com.MainApp")抛出异常.

有人可以解释一下这个的实际原因吗?

java

3
推荐指数
2
解决办法
168
查看次数

标签 统计

java ×1