快速修复Class.forName案例问题

时间:2013-10-09 20:17:55

标签: java class classloader

我从Java中得到了这个真正(愚蠢)的错误

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: models/modelclass (wrong name: models/ModelClass)

所以我在命令行输入一个命令,我宁愿不输入类名的正确情况。我想键入“modelclass”而不是“ModelClass”。

有没有办法解决这个问题?为什么存在这种异常?!?

1 个答案:

答案 0 :(得分:4)

存在错误,因为标准Java类加载器对类名称区分大小写。

三个选项:

  1. 忽略标准Java约定并将所有类命名为小写(不推荐,如果您正在寻找第三方类,则不可能)。
  2. 使用Google's Reflections Library在类路径中查找类,对给定输入执行不区分大小写的匹配,并使用在Class.forName()调用中从反射中找到的类。
  3. 迭代#2:编写自己的类加载器,对类进行不区分大小写的搜索并加载你想要的类。