Хотя, безусловно, возможно достичь того, что вы описываете, гораздо проще использовать язык сценариев для таких динамических 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 -подобные опции.