使我的Java程序与外部类文件交互

时间:2019-01-25 20:09:32

标签: java

我想在Java程序上增加更多支持,但不知道如何做。 Google并没有帮助我,所以我在这里问。 我希望我的Java程序在“ mod”文件夹中查看类,然后与它们进行交互。例如,我有红色和绿色的实体,并带有与其关联的某些代码。它们在地图上随机产生。如果有人在mod文件夹中放置了一个蓝色实体,我也希望它也可以生成。

2 个答案:

答案 0 :(得分:1)

您只需要将“ mod”文件夹放在类路径中,然后使用Java反射API查找类。

为简化起见,所有类都需要具有一些共同点。例如,实现接口或在特定程序包中定义。 您可以使用以下库:https://github.com/ronmamo/reflections

例如:

Reflections reflections = new Reflections("mod");    
Set<Class<? extends ModInterface>> classes = reflections.getSubTypesOf(ModInterface.class);

答案 1 :(得分:0)

假设:程序启动时存在所有扩展文件

  • 将扩展文件夹添加到类路径
  • 定义扩展接口(具有您希望扩展具有的所有功能)
  • 使所有扩展类都实现扩展
  • 在主代码中公开一个[Someclass].register(Extension e)静态方法
  • 在每个扩展类中,
  • 在其静态初始值设定项中调用注册
  • 对已注册的所有扩展程序执行任何操作...

假设:在运行时动态加载扩展