gpt4 book ai didi

java - 加载事先不知道包的 Java 类

转载 作者:行者123 更新时间:2023-12-02 12:17:46 24 4
gpt4 key购买 nike

我一直在使用下面的代码来加载我知道要加载的包的类。

ClassLoader classLoader = ClassLoader.getSystemClassLoader();

Class<?> myClass = classLoader.loadClass(classNameToBeLoaded);

文件夹/包结构现在发生了变化。

变量 classNameToBeLoaded 可以来自任何我事先无法知道的包,因为类名来自用户提供的 Excel 工作表。

例如,classNameToBeLoaded 的值可以是从 Excel 文件读取的“Utils”、“FileValidation”等。

此类可以来自不同的包,例如“com.iiaffle.utils”或“com.testing.validation”或任何其他包。

如何让类在不知道包名的情况下自动加载?

其他没有具体答案的类似帖子:

最佳答案

您确实需要知道加载类的完全限定名称,有很多类具有相同的类名,唯一使它们不同的是包名称。

一个很好的例子如下:

  • java.awt.List
  • java.util.List

如果这些类没有您需要调用的通用方法,您可以像现在一样加载它们,但添加包名称。

调用通用方法的最安全方法是拥有一个所有动态类都扩展的静态接口(interface)或抽象类,这样您就可以将动态加载的类实例视为实现通用方法的实例。

关于java - 加载事先不知道包的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46034720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com