我一直在使用下面的代码来加载我知道要加载的包的类。加载预先未知包的Java类
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
Class<?> myClass = classLoader.loadClass(classNameToBeLoaded);
现在文件夹/包结构发生变化。
变量classNameToBeLoaded
可以来自我无法预先知道的任何包,因为类名来自用户提供的Excel工作表。
例如,classNameToBeLoaded的值可以是从Excel文件中读取的“Utils”,“FileValidation”等。
这个类可以来自不同的包,比如“com.iyaffle.utils”或像“com.testing.validation”或类似的东西。
当我们不知道包名时,如何让类自动加载?
其他类似的线程不具有具体的答案:
你不能。让用户提供包名称。 – EJP
@EJP:\t 将只有几个软件包将被使用,它没有名称相同的方法。 – Purus
为什么不只是为一个包调用'loadClass',并且如果调用失败,则调用另一个包? – DodgyCodeException