fork download
  1. import javax.script.Invocable;
  2. import javax.script.ScriptContext;
  3. import javax.script.ScriptEngine;
  4. import javax.script.ScriptEngineManager;
  5. import java.util.function.Function;
  6. import java.util.function.Consumer;
  7.  
  8. public class Main {
  9.  
  10. public static void main(String[] args) throws Exception {
  11. ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
  12. Main m = new Main();
  13. engine.getContext().setAttribute("main", m, ScriptContext.ENGINE_SCOPE);
  14. engine.eval("function f(x) {return 42;} main.hey(f);", engine.getBindings(ScriptContext.ENGINE_SCOPE));
  15. }
  16.  
  17. public String bar() {
  18. return "Hello World";
  19. }
  20.  
  21. public void hey(Function<Integer, Integer> f) {}
  22. }
  23.  
Success #stdin #stdout #stderr 1.36s 84408KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Warning: Nashorn engine is planned to be removed from a future JDK release