- 所有已知的实现类:
-
SimpleScriptContext
public interface ScriptContext
用于将脚本引擎与对象(如作用域绑定)连接在一起的接口,用于在托管应用程序中。每个作用域都是一组命名属性,其值可以使用
ScriptContext
方法设置和检索。ScriptContext还公开了读取器和写入器,供脚本引擎用于输入和输出。
- 自1.6版本起:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
EngineScope属性在单个ScriptEngine
的生命周期内可见,并为每个引擎维护一组属性。static final int
GlobalScope属性对同一ScriptEngineFactory创建的所有引擎可见。 -
Method Summary
Modifier and TypeMethodDescriptiongetAttribute
(String name) 检索搜索顺序中最早出现的作用域中具有给定名称的属性的值。getAttribute
(String name, int scope) 获取给定作用域中属性的值。int
getAttributesScope
(String name) 获取定义属性的最低作用域。getBindings
(int scope) 获取与此ScriptContext
中给定作用域关联的Bindings
。返回用于显示错误输出的Writer
。返回供脚本读取输入使用的Reader
。返回ScriptContext中作用域的所有有效值的不可变List
。返回脚本用于显示输出时使用的Writer
。removeAttribute
(String name, int scope) 在给定作用域中删除属性。void
setAttribute
(String name, Object value, int scope) 在给定作用域中设置属性的值。void
setBindings
(Bindings bindings, int scope) 将Bindings
实例与此ScriptContext
中的特定作用域关联。void
setErrorWriter
(Writer writer) 设置用于显示错误输出的Writer
。void
设置脚本用于读取输入的Reader
。void
设置脚本用于显示输出时使用的Writer
。
-
Field Details
-
ENGINE_SCOPE
static final int ENGINE_SCOPEEngineScope属性在单个ScriptEngine
的生命周期内可见,并为每个引擎维护一组属性。- 参见:
-
GLOBAL_SCOPE
static final int GLOBAL_SCOPEGlobalScope属性对同一ScriptEngineFactory创建的所有引擎可见。- 参见:
-
-
Method Details
-
setBindings
将Bindings
实例与此ScriptContext
中的特定作用域关联。对getAttribute
和setAttribute
方法的调用必须映射到指定作用域的Bindings
的get
和put
方法。- 参数:
-
bindings
- 要与给定作用域关联的Bindings
-
scope
- 作用域 - 抛出:
-
IllegalArgumentException
- 如果此类型的ScriptContexts中未为指定作用域值定义Bindings
。 -
NullPointerException
- 如果作用域的值为ENGINE_SCOPE
且指定的Bindings
为null。
-
getBindings
获取与此ScriptContext
中给定作用域关联的Bindings
。- 参数:
-
scope
- 作用域 - 返回:
-
关联的
Bindings
。如果尚未设置,则返回null
。 - 抛出:
-
IllegalArgumentException
- 如果此类型的ScriptContext
中未为指定作用域值定义Bindings
。
-
setAttribute
在给定作用域中设置属性的值。如果作用域为GLOBAL_SCOPE
且未为GLOBAL_SCOPE
设置绑定,则setAttribute调用将不起作用。- 参数:
-
name
- 要设置的属性的名称 -
value
- 属性的值 -
scope
- 要设置属性的作用域 - 抛出:
-
IllegalArgumentException
- 如果名称为空或作用域无效。 -
NullPointerException
- 如果名称为null。
-
getAttribute
获取给定作用域中属性的值。- 参数:
-
name
- 要检索的属性的名称。 -
scope
- 要检索属性的作用域。 - 返回:
-
属性的值。如果给定作用域中不存在该名称的属性,则返回
null
。 - 抛出:
-
IllegalArgumentException
- 如果名称为空或作用域的值无效。 -
NullPointerException
- 如果名称为null。
-
removeAttribute
在给定作用域中删除属性。- 参数:
-
name
- 要移除的属性的名称 -
scope
- 要移除属性的作用域 - 返回:
- 已移除的值。
- 抛出:
-
IllegalArgumentException
- 如果名称为空或作用域无效。 -
NullPointerException
- 如果名称为null。
-
getAttribute
检索搜索顺序中最早出现的作用域中具有给定名称的属性的值。顺序由作用域参数的数值确定(首先是最低作用域值)。- 参数:
-
name
- 要检索的属性的名称。 - 返回:
- 具有给定名称的属性在最低作用域中的值。如果任何作用域中不存在具有该名称的属性,则返回null。
- 抛出:
-
NullPointerException
- 如果名称为null。 -
IllegalArgumentException
- 如果名称为空。
-
getAttributesScope
获取定义属性的最低作用域。- 参数:
-
name
- 属性的名称。 - 返回:
- 最低作用域。如果任何作用域中未定义具有给定名称的属性,则返回-1。
- 抛出:
-
NullPointerException
- 如果名称为null。 -
IllegalArgumentException
- 如果名称为空。
-
getWriter
Writer getWriter()返回脚本用于显示输出时使用的Writer
。- 返回:
-
Writer
。
-
getErrorWriter
Writer getErrorWriter()返回用于显示错误输出的Writer
。- 返回:
-
Writer
-
setWriter
设置脚本用于显示输出时使用的Writer
。- 参数:
-
writer
- 新的Writer
。
-
setErrorWriter
设置用于显示错误输出的Writer
。- 参数:
-
writer
-Writer
。
-
getReader
Reader getReader()返回供脚本读取输入使用的Reader
。- 返回:
-
Reader
。
-
setReader
设置脚本用于读取输入的Reader
。- 参数:
-
reader
- 新的Reader
。
-
getScopes
返回ScriptContext中作用域的所有有效值的不可变List
。- 返回:
- 作用域值的列表
-