Смысл в том, что в зависимости от получаемых методом GET параметрах сервлетом необходимо выполнить тот или иной метод - getN1FromDB
, getN2FromDB
и т.д.
Можно ли это сделать не применяя if, программно формируя имя метода в этой части кода?
DAOModel model = new DAOModel();
List records = model.getN1FromDB(параметр1, параметр2);
Можно с помощью рефлексии, но она медленная, небезопасная и в целом плохая практика использовать её, если вы не пишите средства разработки или фреймворк.
String methodName = "getN1FromDB";
DAOModel model = new DAOModel();
Method method = model.getClass().getDeclaredMethod(methodName, {String.class, int.class});
List records = (List) method.invoke(model, "Hello", 42);
Да это возможно сделать через рефлексию (Java Reflection), но это будет гораздо запарнее:
DAOModel model = new DAOModel();
String methodName = "getN1FromDB";
java.lang.reflect.Method myNamedMethod;
try {
myNamedMethod = model.getClass().getMethod(methodName, param1.class, param2.class, ..);
} catch (SecurityException e) { ... }
catch (NoSuchMethodException e) { ... }
В данном случае параметры необходимы для того, чтобы определить метод, если существуют его переопределения разными параметрами.
Далее вызываете этот метод с помощью метода invoke
try {
List records = (List) myNamedMethod.invoke(model, параметр1, параметр2);
} catch (IllegalArgumentException e) { ... }
catch (IllegalAccessException e) { ... }
catch (InvocationTargetException e) { ... }
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я хотел бы использовать эту красивую SVG-анимацию, размещенную на CodePen, но я не могу понять, как запустить или перезапустить анимацию:
Где-то со вчерашнего дня в чате на моем сайте, работающем при помощи Commet Server не работает функция
Есть форма с одним полем и модальное окно bootstrap-4Подскажите как передать данные с формы методом POST в модальное окно? Если можно с примером...
Есть аккордеон, пытаюсь добавить к нему стрелки состоянияПри открытой вкладке ей присваивается класс active, далее пробую добавить класс, который...