Доброго времени суток! На днях озадачился вопросом: как можно сделать вызов метода через другую переменную? То есть, например, пользователь вводит строку с именем метода, а я его должен вызвать. Видел (вроде бы) что-то подобное в JavaScript при присвоении переменной функции. Прошу помочь, заранее спасибо.
Это можно сделать с помощью Reflection - http://java.sun.com/docs/books/tutorial/reflect/member/methodInvocation.html
Например, для класса с именем "my class", найдем метод "my method" с параметрами parameterTypes. И далее вызовем его для объекта objectToInvokeOn c параметрами params:
// Находим класс
Class<?> c = Class.forName("class name");
// Находим метод
Method method = c.getDeclaredMethod ("method name", parameterTypes)
// Вызываем метод для объекта
method.invoke (objectToInvokeOn, params)
Можно и простой найти метод для известного объекта:
Method method = myObject.getClass().getMethod("method name", parameterTypes);
method.invoke(myObject, params);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники