快速修复Class.forName案例问题

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

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

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

有办法解决这个问题吗? 为什么存在这种exception?!?

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

三种选择:

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