Смысл в том, что в зависимости от получаемых методом 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) { ... }
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости