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

问题描述 投票:0回答:2

我想在我的Java程序上添加更多支持,但不知道如何操作。谷歌没有帮我这个,所以我会在这里问。我希望我的Java程序在“mod”文件夹中查看类,然后与它们进行交互。例如,我有红色和绿色实体,并且某些代码与之关联。它们在地图上随机产卵。如果有人在mod文件夹中放入一个蓝色实体,我也希望它也能生成。

java
2个回答
1
投票

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

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

例如:

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

0
投票

假设:程序启动时出现的所有扩展文件

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

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

© www.soinside.com 2019 - 2024. All rights reserved.