我对我的代码发生了什么感到茫然。过去常常这样做:
MyClass obj = (MyClass) Class.forName(extendedType).getConstructors()[0].newInstance(scan);
但现在它没有加载。相反,它击中这一行,停止,然后退出。我调试了它,并知道这是在这一行的某个地方发生的。任何建议将不胜感激。
注意:今天早些时候我重构了我的代码,因为它一直在给我一些命名问题。主要是我将包名称从大写更改为小写(即Myclass.class到myclass.class)。我不知道这是否影响了某些事情。
更新 extendedType是一个字符串,提供我要加载的类的完整包和类名。所以,例如,com.biz.myclass而不仅仅是myclass。目的是根据用户选择的内容加载父类的子类。还有其他方法可以做到这一点,但我想知道为什么这突然停止工作。它停在Class.forName
上答案 0 :(得分:0)
重构包在许多IDE中并不完美,尽量不要......
尝试检查系统中存在的实际文件夹名称。
如果文件夹名称与之前一样,则表明您遇到了问题。
如果原始包名称可以说:
MyPackage的
然后你重构为:
mypackage的
然后您可能需要手动去相应地重命名文件夹结构。
试一试。