用于程序更新的反射编程

时间:2015-09-30 11:05:43

标签: java

可以使用反射式编程来更新程序吗?例如,如果我写了一个Java游戏,我可以添加新的DLL,这些DLL可能包含例如新角色​​和具有新行为的新型武器等。

3 个答案:

答案 0 :(得分:1)

Java动态类加载将允许您这样做。 This is a good tutorial

答案 1 :(得分:1)

  1. OSGI 作为具有终身管理功能的模块化系统。存在几个像equinox这样的OSGi容器。可以动态加载称为bundle的jar模块,依此类推。并替换为较新的版本。这将提供替换添加功能的功能。

  2. 否则,如果Java WebStart (JNLP)仍然存在:它通过互联网提供更新机制。

  3. 可以使用(URL-)ClassLoaders动态加载一个类,比如来自“features123”jar。该类可以实现一些接口(不添加到jar!)。

答案 2 :(得分:0)

好的,dll不是通常在Java中注册/取消注册对象的好方法。因为它是“共享”系统本机库。注册一个dll时,它会被注册一次,无法卸载它。

当然你可以通过反射api添加新的原生dll。请注意不要更新现有的并且不要更改方法/功能签名。它应该像插件一样。不应该打扰以前的dll并替换它们。