【发布时间】:2015-01-05 08:39:21
【问题描述】:
我正在创建一个游戏,其中角色可以附加模块以提供额外的功能,例如,可能有一个“银行家”模块,它监听点击事件并打开银行菜单。用户可以通过扩展Module 类并使用ModuleFactory 注册实例来创建模块。当在构造函数中传递时,模块能够序列化自己并从序列化表单中加载自己(保存到 XML)。
我遇到的问题是,在加载模块时,我有每个模块的名称和实例,但我无法为每个模块创建一个新实例。
在每个返回模块实例的模块内部创建一个newInstance() 方法是否可以接受?
我知道可以为此使用反射,但大多数时候我发现反射比我从中获得的好处更麻烦。
【问题讨论】:
-
"...我有每个模块的名称和实例,但我不能为每个模块创建一个新实例。"你能再解释一下吗?
-
@Stefan 我将每个模块的实例存储在带有模块名称的映射中。由于每个角色都需要每个模块的单独实例,因此我需要为其创建更多实例。
标签: java reflection instantiation