JDK Java

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.lang.reflect.Method;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JavaScriptUtils {
  @Target({ METHOD, FIELD })
  @Retention(RUNTIME)
  @interface JavaScript{
    String value();
  }
  
  public static void eval(Method method) throws ScriptException {
    JavaScript script = method.getAnnotation(JavaScript.class);
    eval(script);
  }
  
  public static void eval(JavaScript script) throws ScriptException {
    ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        engine.eval(script.value());
  }
}