Метод вызова на основе строки

1

Представьте, что у меня есть String X Как я могу вызвать метод X() в java? Пример реализации (это не мое приложение, так как этот вопрос более теоретический и не имеет конкретного приложения):

У меня есть консольная линия. Объект сканера используется для ввода. У нас есть 1000 методов в нашей программе, и нам нужны пользователи в нашей консоли, чтобы иметь возможность выполнять эти методы по имени. Например (psuedocode),

public static void main(String[] args) {
   // string X is prompted to be either doBlah, getBlah, etc...
   String X = keyScanner.next();
   execute(X + "()"); //psuedocode for what I would like to do
}
public void doBlah() {}
public void getBlah() {}
public void letNooo() {}
// etc... (just random method names, no particular pattern)

Как я могу сделать это на Java или на самом деле на любом языке? Спасибо.

  • 1
    Вы ищете API отражения .
  • 0
    Поиск "отражения" в Java, также для "invoke ()"
Показать ещё 1 комментарий
Теги:
methods

1 ответ

1
Лучший ответ

Вы должны будете использовать отражение:

Method m = Main.class.getMethod("doBlah");
m.invoke(new Main(), null)

Вы можете добавить еще много других аргументов как для извлечения метода, так и для его вызова, все из которых можно найти здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню