Можете ли вы использовать Java отражений для определения и вызова метода во время выполнения? - PullRequest
0 голосов
/ 09 января 2020

Я только немного прочитал об отражениях, так что на самом деле я мало что знаю.

Я ищу программу (задачу класса), в которой пользователь пишет реализацию метода в предоставленном текстовое поле, которое затем должно быть вызвано. Мне было интересно, если это можно сделать с помощью отражений? Или есть другой способ?

1 Ответ

0 голосов
/ 13 января 2020

Хотя, безусловно, возможно достичь того, что вы описываете, гораздо проще использовать язык сценариев для таких динамических c выражений. JDK все еще имеет встроенный движок JavaScript, но вы можете легко добавлять сторонние движки. Если вы действительно хотите, чтобы Java был языком, используемым в динамических c сценариях, одна идея состоит в том, чтобы использовать оболочку обработчика сценариев JShell .

В любом случае, подход будет go вот так:

//Read the code to evaluate
String scriptCode = ...;

//Init the engine of choice
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript"); //Or "jshell" or whatever

//Add all implicit variable values (if any)
Bindings bindings = engine.createBindings();
bindings.put("variableName", variableValue);

//Execute
engine.eval(scriptCode, bindings));

BeanShell или Groovy - другие Java -подобные опции.

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