java - 插件的反射

标签 java reflection

在 C 中,我可以通过让共享库实现以下接口(interface)来编写插件:

extern "C" int initialize(SomeArgument * state);
extern "C" int shutdown(SomeArgument * state);

显然,这是一个非常的高级界面,但我认为它表达了要点。我听说反射的一个很好的用途是编写插件,但为什么这会比我这里的更好呢?使用这样的界面具有以下优点:

  • 更快(反射并不快,无论是查找方法还是间接调用)
  • 内存(反射有内存开销)
  • 直接(插件的入口/导出点直观明显)

我是不是错过了什么?

最佳答案

我能想到的主要优点是,您可以使用包含要在运行时动态加载的插件的属性文件(通过反射)。

或者您可以扫描特定目录中的插件并(尝试)通过反射自动加载/实例化它们。

当然,这并不意味着这些插件不应该实现特定的接口(interface)。

关于java - 插件的反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10591398/

相关文章:

java - 如何在使用反射创建的对象上注入(inject)东西?

java - 聚合:死后是否有生命?

java - "transient"构建或触发特定构建器

Java-反射 : Get fields belonging to current class only

reflection - 我可以在纯 Kotlin 中通过类名实例化一个对象吗

reflection - `is` 所持有的底层类型是否有 `TAny` 功能?

java - 如何在 IntelliJ 中调用方法/构造函数参数提示?

java - 将 JFrame 传输到 JPanel

function - 如何在 reflect 包中正确使用 .Call

Java - 反射 - 如何调用复制构造函数?