Просто подумал, что я опубликую то, что мне показалось весьма полезным и могло бы быть возможным для тех, кто испытывает аналогичные потребности.
Следующий метод был методом, который я написал для своего приложения JavaFX, чтобы избежать необходимости приведения и также писать, если объект x экземпляр операторов объекта b каждый раз возвращал контроллер.
public <U> Optional<U> getController(Class<U> castKlazz){
try {
return Optional.of(fxmlLoader.<U>getController());
}catch (Exception e){
e.printStackTrace();
}
return Optional.empty();
}
Объявление метода для получения контроллера было
public <T> T getController()
Используя тип U, переданный в мой метод через объект класса, он может быть перенаправлен в метод get контроллера, чтобы сообщить ему, какой тип объекта возвращать. Необязательный объект возвращается в случае, если указан неправильный класс, и возникает исключение, и в этом случае возвращается пустой необязательный объект, который мы можем проверить.
Вот как выглядел последний вызов метода (если для присутствия возвращаемого необязательного объекта требуется Consumer
getController(LoadController.class).ifPresent(controller->controller.onNotifyComplete());