Вызов метода java

445
06 марта 2017, 10:35

Доброго времени суток! На днях озадачился вопросом: как можно сделать вызов метода через другую переменную? То есть, например, пользователь вводит строку с именем метода, а я его должен вызвать. Видел (вроде бы) что-то подобное в JavaScript при присвоении переменной функции. Прошу помочь, заранее спасибо.

Answer 1

Это можно сделать с помощью 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);
READ ALSO
Повторное выполнение Runnable в потоке

Повторное выполнение Runnable в потоке

Есть класс Worker который содержит в себе очередь и при добавлении в очередь новой строки должен выполнить некую работу

231
Тратятся ли ресурсы на элементы layout, которые не видны (не влезают) на экран?

Тратятся ли ресурсы на элементы layout, которые не видны (не влезают) на экран?

Я так думаю, что тратятся: и кнопки создаются, неважно gone они или visible, или вообще находятся вне области экрана, и картинки загружаются? Правильно...

233
Алгоритм слияния элементов коллекций

Алгоритм слияния элементов коллекций

Здравствуйте, вот суть моей проблемы, есть несколько коллекций:

273