【发布时间】:2013-05-24 17:23:51
【问题描述】:
我正在使用用于自动化软件的“宏”的 Java API。除其他外,该 API 具有类 Simulation(某种全局状态)和 FunctionManager。我无法修改这些类。
我想创建一个BetterFunctionManager 的类extends FunctionManager,因为后者缺少一些有用的功能。但是我不知道该怎么做,因为FunctionManager不能直接实例化。必须从Simulation获取,像这样:
Simulation simulation = getCurrentSimulation();
FunctionManager functionManager = simulation.getFunctionManager();
注意Simulation也不能直接实例化;它必须通过getCurrentSimulation() 获得(当前模拟由宏解释器在运行时确定)。
我不能沮丧;以下抛出 ClassCastException:
BetterFunctionManager betterFunctionManager = simulation.getFunctionManager();
如何构造BetterFieldFunctionManager?
【问题讨论】:
-
您可以创建一个包含
Simulation属性的类,然后按照自己的方式进入所有重新定义的方法。然后你可以让它返回你的BetterFunctionManager。 -
FunctionManager是否将您需要在BetterFieldFunctionManager中的所有成员公开?还是您还需要访问受保护的成员? -
@Andreas:是的,据我所知,我需要的一切都是公开的。
-
@Jean-FrançoisCorbett 我问的原因是看看您是否可以使用委托方法 :-) 这也是我的建议,因为下面的答案已经提出。
标签: java constructor extends