Как передать в метод класса переменную заранее неизвестного типа
Вопрос достаточно простой, но не знаю как сформулировать поисковикам. У меня есть метод в классе, который принимает на вход только одну переменную. На практике всё выглядит так: пишу оконное приложение (JavaFX), есть метод, в который я передаю объект типа VBox, HBox, AnchorPane или какой-либо другой — данный объект является основой для контента окна (содержат в себе кнопки, надписи, таблицы и т.д.). На данный момент мне приходится писать много методов один в один копирующих друг друга.
private void createWindow(VBox root, Stage stage, String fileFXML) throws Exception{
this.stage = stage;
FXMLLoader fxmlLoader = new FXMLLoader(MainApp.class.getResource(fileFXML));
Scene scene = new Scene(root, this.WIDTH, this.HEIGHT);
stage.setTitle(this.title);
stage.setScene(scene);
}
Сам вопрос: как в метод createWindow передавать переменную, которая будет или типа VBox, или типа HBox, или иного типа, чтобы не пришлось перегружать метод? Подскажите, как называется то, что я ищу и как это решить. Буду рад любому ответу.
Ответы (1 шт):
Если я правильно понял - вам надо найти (если он есть) общего предка классов VBox, HBox, AnchorPane. Скорее всего они имеют общего предка, равного типу первого аргумента используемого вами конструктора класса Scene. Коли всё вышеозначенное верно, то можно просто поменять тип аргумента root на тип первого аргумента конструктора класса Scene и тогда у вас будет всего один метод.
Получится, судя по комменту ТС что-то такое:
private void createWindow(Pane root, Stage stage, String fileFXML) throws Exception {...}