Интерфейс Invocable

Все известные реализующие классы:
NashornScriptEngine
public interface Invocable

Необязательный интерфейс, реализуемый ScriptEngines, методы которого позволяют вызывать процедуры в скриптах, которые были ранее выполнены.

С тех пор:
1.6

Методы

Модификатор и тип Метод Описание
<T> T getInterface​(Class<T> clasz)

Возвращает реализацию интерфейса, используя функции, скомпилированные в интерпретаторе.

<T> T getInterface​(Object thiz, Class<T> clasz)

Возвращает реализацию интерфейса, используя методы-члены объекта скрипта, скомпилированные в интерпретаторе.

Object invokeFunction​(String name, Object... args)

Используется для вызова процедур и функций верхнего уровня, определенных в скриптах.

Object invokeMethod​(Object thiz, String name, Object... args)

Вызывает метод объекта скрипта, скомпилированного во время предыдущего выполнения скрипта, который сохраняется в состоянии ScriptEngine.

Методы

invokeMethod

Object invokeMethod(Object thiz,
                    String name,
                    Object... args)
             throws ScriptException,
                    NoSuchMethodException

Вызывает метод объекта скрипта, скомпилированного во время предыдущего выполнения скрипта, который сохраняется в состоянии ScriptEngine.

Параметры:
name - Имя процедуры, которая должна быть вызвана.
thiz - Если процедура является членом класса, определенного в скрипте, и thiz представляет собой экземпляр этого класса, возвращённый предыдущим выполнением или вызовом, то указанный метод вызывается через этот экземпляр.
args - Аргументы, которые необходимо передать процедуре. Правила преобразования аргументов в переменные скрипта зависят от реализации.
Возвращает:
Значение, возвращённое процедурой. Правила преобразования переменной скрипта, возвращённой методом скрипта, в объект Java зависят от реализации.
Исключение:
ScriptException - если во время вызова метода произошла ошибка.
NoSuchMethodException - если метод с данным именем или соответствующими типами аргументов не найден.
NullPointerException - если имя метода равно null.
IllegalArgumentException - если указанный thiz равен null или указанный объект не представляет собой объект скрипта.

invokeFunction

Object invokeFunction(String name,
                      Object... args)
               throws ScriptException,
                      NoSuchMethodException

Используется для вызова процедур и функций верхнего уровня, определённых в скриптах.

Параметры:
name - имя процедуры или функции, которую необходимо вызвать.
args - Аргументы, которые необходимо передать процедуре или функции.
Возвращает:
Значение, возвращённое процедурой или функцией.
Исключение:
ScriptException - если во время вызова метода произошла ошибка.
NoSuchMethodException - если метод с данным именем или соответствующими типами аргументов не найден.
NullPointerException - если имя метода равно null.

getInterface

<T> T getInterface(Class<T> clasz)

Возвращает реализацию интерфейса, используя функции, скомпилированные в интерпретаторе. Методы интерфейса могут быть реализованы с помощью метода invokeFunction.

Параметры типа:
T - тип интерфейса, который необходимо вернуть
Параметры:
clasz - объект интерфейса, который необходимо вернуть.
Возвращает:
Экземпляр запрошенного интерфейса - null, если запрошенный интерфейс недоступен, т. е. если скомпилированные функции в ScriptEngine не найдены, соответствующие интерфейсу.
Исключение:
IllegalArgumentException - если указанный объект интерфейса равен null или не является интерфейсом.

getInterface

<T> T getInterface(Object thiz,
                   Class<T> clasz)

Возвращает реализацию интерфейса, используя методы-члены объекта скрипта, скомпилированные в интерпретаторе. Методы интерфейса могут быть реализованы с помощью метода invokeMethod.

Параметры типа:
T - тип интерфейса, который необходимо вернуть
Параметры:
thiz - Объект скрипта, чьи методы-члены используются для реализации методов интерфейса.
clasz - Объект интерфейса, который необходимо вернуть.
Возвращает:
Экземпляр запрошенного интерфейса - null, если запрошенный интерфейс недоступен, т. е. если скомпилированные методы в ScriptEngine не найдены, соответствующие интерфейсу.
Исключение:
IllegalArgumentException - если указанный объект интерфейса равен null или не является интерфейсом, или если указанный объект равен null или не представляет собой объект скрипта.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.scripting/javax/script/Invocable.html

Spec-Zone .ru
спецификации, руководства, описания, API