Java 方法调用与基于反射的事件系统

Java 方法调用与基于反射的事件系统,java,events,reflection,methods,Java,Events,Reflection,Methods,目前,我正在尝试为应用程序创建一个mod。我试图通过在应用程序中放置“钩子”使其尽可能动态。这些钩子将用于调用/创建我选择的任何设计(事件系统/方法调用)。我想知道哪一个更适合我的项目。如果你有其他更好的方法,请告诉我 如果我进行方法调用,我将在超类中调用一个方法(这个超类用于mods,mods扩展它)。mod if使用被调用的方法。。将在内部运行代码 如果我做一个基于反射的事件系统。我将创建一个对象(对象的创建将由钩子引起),mod(子类)将侦听此对象的创建。。。即 getEventManag

目前,我正在尝试为应用程序创建一个mod。我试图通过在应用程序中放置“钩子”使其尽可能动态。这些钩子将用于调用/创建我选择的任何设计(事件系统/方法调用)。我想知道哪一个更适合我的项目。如果你有其他更好的方法,请告诉我

如果我进行方法调用,我将在超类中调用一个方法(这个超类用于mods,mods扩展它)。mod if使用被调用的方法。。将在内部运行代码

如果我做一个基于反射的事件系统。我将创建一个对象(对象的创建将由钩子引起),mod(子类)将侦听此对象的创建。。。即

getEventManager().registerlistener(this)

@EventHandler
public void onCertainEvent(EventTick event){}

在“好”代码和效率方面,哪一个更好?或者如果你有其他的方法。。请让我知道。

使用注释是编写代码的一种方式。这有助于删除大量锅炉铭牌代码。虽然为调用者编写反射会更慢、更麻烦,但对被调用者来说可能会更好。更慢的是,代码预热后通常为30-100纳秒,这对您可能并不重要


我建议你采用最自然的方式来描述你的问题。简单易懂的东西通常是最重要的。

两者都不是。最好的选择是有一个mods可以实现的
接口
。反射的成本相对较高,只有在编译时不知道类型和方法签名时才应该使用反射。