Представьте, что у меня есть 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 или на самом деле на любом языке? Спасибо.
Вы должны будете использовать отражение:
Method m = Main.class.getMethod("doBlah");
m.invoke(new Main(), null)
Вы можете добавить еще много других аргументов как для извлечения метода, так и для его вызова, все из которых можно найти здесь.