Я работаю с 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
?
Вы можете создать класс, содержащий атрибут «Симуляция», и проложить путь ко всем методам переопределения. Затем вы можете вернуть его 'BetterFunctionManager'. – Djon
делает 'FunctionManager' выставляют всех участников как общедоступные, которые вам нужны в' BetterFieldFunctionManager'? Или вам нужен доступ к защищенным членам? –
@ Андреас: Да, насколько мне известно, все, что мне нужно, является публичным. –