- java.lang.Object
-
- jdk.nashorn.api.scripting.AbstractJSObject
-
- jdk.nashorn.api.scripting.ScriptObjectMirror
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 Object
call(Object thiz, Object... args)
将此对象称为JavaScript函数。Object
callMember(String functionName, Object... args)
调用成员函数void
clear()
从该地图中删除所有的映射(可选操作)。boolean
containsKey(Object key)
如果此映射包含指定键的映射,则返回true
。boolean
containsValue(Object value)
如果此映射将一个或多个键映射到指定的值,则返回true
。boolean
delete(Object key)
从此对象中删除属性。Set<Map.Entry<String,Object>>
entrySet()
返回此地图中包含的映射的Set
视图。boolean
equals(Object other)
指示一些其他对象是否等于此。Object
eval(String s)
评估JavaScript表达式。ScriptObjectMirror
freeze()
ECMA 15.2.39 - 冻结执行。Object
get(Object key)
返回此映射映射指定键的值。String
getClassName()
ECMA [[Class]]属性Object
getDefaultValue(Class<?> hint)
根据ECMAScript 5.1第8.6.2节实现此对象的[[DefaultValue]]
方法。Object
getMember(String name)
检索此JavaScript对象的命名成员。String[]
getOwnKeys(boolean all)
返回与对象关联的自己的属性键的数组。Object
getOwnPropertyDescriptor(String key)
ECMA 8.12.1 [[GetOwnProperty]](P)Object
getProto()
返回此对象的__proto__。Object
getSlot(int index)
检索此JavaScript对象的索引成员。int
hashCode()
返回对象的哈希码值。boolean
hasMember(String name)
该对象是否具有命名成员?boolean
hasSlot(int slot)
该对象是否具有索引属性?static boolean
identical(Object obj1, Object obj2)
给定的对象是否反映到相同的底层对象?boolean
isArray()
这是一个数组对象吗?boolean
isEmpty()
如果此映射不包含键值映射,则返回true
。boolean
isExtensible()
检查此脚本对象是否可扩展boolean
isFrozen()
检查此脚本对象是否被冻结boolean
isFunction()
这是一个函数对象吗?boolean
isInstance(Object instance)
检查给定对象是否为“this”对象的实例。boolean
isSealed()
检查这个脚本对象是否被密封boolean
isStrictFunction()
这是一个'使用strict'功能对象吗?static boolean
isUndefined(Object obj)
检查给定对象的实用程序是否为ECMAScript未定义的值Set<String>
keySet()
返回此对象的所有属性名称集。Object
newObject(Object... args)
调用这个“构造函数”JavaScript函数来创建一个新对象。ScriptObjectMirror
preventExtensions()
将此脚本对象标记为不可扩展Object
put(String key, Object value)
设置一个命名值。void
putAll(Map<? extends String,? extends Object> map)
将给定的Map
中的所有映射添加到此Bindings
。Object
remove(Object key)
如果存在该地图,则从该地图中删除该密钥的映射(可选操作)。void
removeMember(String name)
从此JavaScript对象中删除一个已命名的成员ScriptObjectMirror
seal()
ECMAScript 15.2.3.8 - 密封执行void
setIndexedPropertiesToExternalArrayData(ByteBuffer buf)
Nashorn扩展名:setIndexedPropertiesToExternalArrayData。void
setMember(String name, Object value)
在此JavaScript对象中设置一个命名成员void
setProto(Object proto)
设置此对象的__proto__。void
setSlot(int index, Object value)
在此JavaScript对象中设置索引成员int
size()
返回此地图中键值映射的数量。<T> T
to(Class<T> type)
将此脚本对象转换为给定类型的实用程序。double
toNumber()
已过时。String
toString()
返回对象的字符串表示形式。static Object
unwrap(Object obj, Object homeGlobal)
如果需要,可以解开脚本对象镜像。static Object[]
unwrapArray(Object[] args, Object homeGlobal)
如果需要,展开一组脚本对象镜像。Collection<Object>
values()
返回此对象的所有属性值的集合。static Object
wrap(Object obj, Object homeGlobal)
如果需要,在给定对象上做一个脚本对象镜像。static Object[]
wrapArray(Object[] args, Object homeGlobal)
如果需要,将对象数组包装到脚本对象镜像中。static Object
wrapAsJSONCompatible(Object obj, Object homeGlobal)
如果需要,在给定对象上做一个脚本对象镜像。-
Methods inherited from class jdk.nashorn.api.scripting.AbstractJSObject
getDefaultValue, isInstanceOf
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, entry, forEach, getOrDefault, merge, of, of, of, of, of, of, of, of, of, of, of, ofEntries, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
方法详细信息
-
equals
public boolean equals(Object other)
描述从类别复制:Object
指示一些其他对象是否等于此。equals
方法在非空对象引用上实现等价关系:- 自反性 :对于任何非空的参考值
x
,x.equals(x)
应该返回true
。 - 它是对称的 :对于任何非空引用值
x
和y
,x.equals(y)
应该返回true
当且仅当y.equals(x)
回报true
。 - 传递性 :对于任何非空引用值
x
,y
,并z
,如果x.equals(y)
回报true
和y.equals(z)
回报true
,然后x.equals(z)
应该返回true
。 - 它是一致的 :对于任何非空参考值
x
和y
,多个调用x.equals(y)
一致返回true
或一致返回false
,只要在equals
对对象进行比较的信息进行修改。 - 对于任何非空的参考值
x
,x.equals(null)
应该返回false
。
该
equals
类方法Object
实现对象上差别可能性最大的相等关系; 也就是说,对于任何非空参考值x
和y
,当且仅当x
和y
引用相同对象(x == y
的值为true
)时,此方法返回true
。请注意,当覆盖该方法时,通常需要覆盖
hashCode
方法,以便维护hashCode
方法的一般合同,该方法规定相等的对象必须具有相等的哈希码。 - 自反性 :对于任何非空的参考值
-
hashCode
public int hashCode()
描述从类别复制:Object
返回对象的哈希码值。 支持这种方法是为了散列表的利益,如HashMap
提供的。hashCode
的总合同是:- 无论何时在执行Java应用程序时多次在同一个对象上调用该对象,则
hashCode
方法必须始终返回相同的整数,前提是修改了对象中equals
比较中没有使用的信息。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。 - 如果根据
equals(Object)
方法两个对象相等,则在两个对象中的每个对象上调用hashCode
方法必须产生相同的整数结果。 - 不要求如果两个对象根据
Object.equals(java.lang.Object)
方法不相等,那么在两个对象中的每个对象上调用hashCode
方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。
尽可能合理实用,由类
Object
定义的hashCode方法确实为不同对象返回不同的整数。 (在某个时间点,hashCode可能或可能不被实现为对象的存储器地址的某些功能。)- Specified by:
-
hashCode
在接口Map<String,Object>
- 重写:
-
hashCode
在Object
- 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- 无论何时在执行Java应用程序时多次在同一个对象上调用该对象,则
-
toString
public String toString()
描述从类别复制:Object
返回对象的字符串表示形式。 一般来说,toString
方法返回一个字符串,“文本地表示”此对象。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该
toString
类方法Object
返回一个由类的名称,其中所述对象是其实例,该符号字符`的字符串@
”,并且对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
-
call
public Object call(Object thiz, Object... args)
描述从接口JSObject
复制将此对象称为JavaScript函数。 这相当于JavaScript中的“func.apply(thiz,args)”)。- Specified by:
-
call
在接口JSObject
- 重写:
-
call
在AbstractJSObject
- 参数
-
thiz
- 'this'对象传递给函数。 这可能是空的。 -
args
- 方法的参数 - 结果
- 调用结果
-
newObject
public Object newObject(Object... args)
描述从接口JSObject
复制调用这个“构造函数”JavaScript函数来创建一个新对象。 这相当于JavaScript中的“new func(arg1,arg2 ...)”。- Specified by:
-
newObject
在接口JSObject
- 重写:
-
newObject
在AbstractJSObject
- 参数
-
args
- 方法的参数 - 结果
- 构造函数调用的结果
-
eval
public Object eval(String s)
描述从接口JSObject
复制评估JavaScript表达式。- Specified by:
-
eval
在接口JSObject
- 重写:
-
eval
在AbstractJSObject
- 参数
-
s
- 要评估的JavaScript表达式 - 结果
- 评价结果
-
callMember
public Object callMember(String functionName, Object... args)
调用成员函数- 参数
-
functionName
- 函数名 -
args
- 参数 - 结果
- 函数的返回值
-
getMember
public Object getMember(String name)
说明从接口JSObject
复制检索此JavaScript对象的命名成员。- Specified by:
-
getMember
在接口JSObject
- 重写:
-
getMember
在AbstractJSObject
- 参数
-
name
- 的会员 - 结果
- 会员
-
getSlot
public Object getSlot(int index)
说明从接口JSObject
复制检索此JavaScript对象的索引成员。- Specified by:
-
getSlot
在接口JSObject
- 重写:
-
getSlot
在AbstractJSObject
- 参数
-
index
- 要检索的索引槽 - 结果
- 会员
-
hasMember
public boolean hasMember(String name)
描述从接口JSObject
复制该对象是否具有命名成员?- Specified by:
-
hasMember
在接口JSObject
- 重写:
-
hasMember
在AbstractJSObject
- 参数
-
name
- 会员名称 - 结果
- 如果此对象具有给定名称的成员,则为true
-
hasSlot
public boolean hasSlot(int slot)
描述从接口JSObject
复制该对象是否具有索引属性?- Specified by:
-
hasSlot
在接口JSObject
- 重写:
-
hasSlot
在AbstractJSObject
- 参数
-
slot
- 要检查的索引 - 结果
- 如果此对象有一个插槽,则为true
-
removeMember
public void removeMember(String name)
说明从接口JSObject
复制从此JavaScript对象中删除一个已命名的成员- Specified by:
-
removeMember
在接口JSObject
- 重写:
-
removeMember
在AbstractJSObject
- 参数
-
name
- 会员姓名
-
setMember
public void setMember(String name, Object value)
描述从接口JSObject
复制在此JavaScript对象中设置一个命名成员- Specified by:
-
setMember
在接口JSObject
- 重写:
-
setMember
在AbstractJSObject
- 参数
-
name
- 会员名称 -
value
- 会员的价值
-
setSlot
public void setSlot(int index, Object value)
描述从接口JSObject
复制在此JavaScript对象中设置索引成员- Specified by:
-
setSlot
在接口JSObject
- 重写:
-
setSlot
在AbstractJSObject
- 参数
-
index
- 成员插槽的索引 -
value
- 会员的价值
-
setIndexedPropertiesToExternalArrayData
public void setIndexedPropertiesToExternalArrayData(ByteBuffer buf)
Nashorn扩展名:setIndexedPropertiesToExternalArrayData。 将索引的属性设置为从给定的nio ByteBuffer中公开。- 参数
-
buf
- 外部缓冲区 - 应该是一个nio ByteBuffer
-
isInstance
public boolean isInstance(Object instance)
说明从接口JSObject
复制检查给定对象是否为“this”对象的实例。- Specified by:
-
isInstance
在接口JSObject
- 重写:
-
isInstance
在AbstractJSObject
- 参数
-
instance
- 要检查的实例 - 结果
- 如果给定的“实例”是此“函数”对象的实例,则为true
-
getClassName
public String getClassName()
描述从接口JSObject
复制ECMA [[Class]]属性- Specified by:
-
getClassName
在接口JSObject
- 重写:
-
getClassName
在AbstractJSObject
- 结果
- 该对象的ECMA [[Class]]属性值
-
isFunction
public boolean isFunction()
描述从接口JSObject
复制这是一个函数对象吗?- Specified by:
-
isFunction
在接口JSObject
- 重写:
-
isFunction
在AbstractJSObject
- 结果
- 如果此镜像包装ECMAScript函数实例
-
isStrictFunction
public boolean isStrictFunction()
说明从接口JSObject
复制这是一个'使用strict'功能对象吗?- Specified by:
-
isStrictFunction
在接口JSObject
- 重写:
-
isStrictFunction
在AbstractJSObject
- 结果
- 如果此镜像代表ECMAScript“use strict”函数,则为true
-
isArray
public boolean isArray()
说明从接口JSObject
复制这是一个数组对象吗?- Specified by:
-
isArray
在接口JSObject
- 重写:
-
isArray
在AbstractJSObject
- 结果
- 如果此镜像包裹ECMAScript数组对象
-
clear
public void clear()
说明从接口Map
复制从该地图中删除所有的映射(可选操作)。 此呼叫返回后,地图将为空。
-
containsKey
public boolean containsKey(Object key)
说明从界面Bindings
复制如果此映射包含指定键的映射,则返回true
。 更正式地说,返回true
当且仅当此映射包含一个键的映射关系k
这样(key==null ? k==null : key.equals(k))
。 (最多可以有一个这样的映射。)- Specified by:
-
containsKey
在接口Bindings
- Specified by:
-
containsKey
在接口Map<String,Object>
- 参数
-
key
- 在此地图中存在的密钥要进行测试。 - 结果
-
true
如果此映射包含指定键的映射。
-
containsValue
public boolean containsValue(Object value)
说明从接口Map
复制如果此映射将一个或多个键映射到指定的值,则返回true
。 更正式地,返回true
当且仅当此映射包含至少一个映射到值v
使得Objects.equals(value, v)
。 对于Map
接口的大多数实现,此操作对于地图大小可能需要时间线性。- Specified by:
-
containsValue
在接口Map<String,Object>
- 参数
-
value
- 要在此地图中存在的值要进行测试 - 结果
-
true
如果该地图将一个或多个键映射到指定的值
-
entrySet
public Set<Map.Entry<String,Object>> entrySet()
说明从接口Map
复制返回此地图中包含的映射的Set
视图。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果映射在集合中的迭代正在进行时被修改(除了通过迭代器自己的remove
操作,或者通过迭代器返回的映射条目上的setValue
操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove
,Set.remove
,removeAll
,retainAll
和clear
操作。 它不支持add
或addAll
操作。
-
get
public Object get(Object key)
描述从接口Bindings
复制返回此映射映射指定键的值。 如果地图不包含此键的映射,则返回null
。 返回值为null
并不一定表示该映射不包含该键的映射; 地图也可能明确地将密钥映射到null
。 可以使用containsKey
操作来区分这两种情况。更正式地,如果此映射包含从
k
键到值v
的映射,使得(key==null ? k==null : key.equals(k))
,则此方法返回v
; 否则返回null
。 (最多可以有一个这样的映射。)
-
isEmpty
public boolean isEmpty()
说明从接口Map
复制如果此映射不包含键值映射,则返回true
。
-
putAll
public void putAll(Map<? extends String,? extends Object> map)
描述从接口Bindings
复制将给定的Map
中的所有映射添加到此Bindings
。
-
remove
public Object remove(Object key)
说明从界面Bindings
复制如果存在该地图,则从该地图中删除该密钥的映射(可选操作)。 更正式地,如果此映射包含从关键字k
到值v
的映射,使得(key==null ? k==null : key.equals(k))
,该映射被删除。 (地图最多可以包含一个这样的映射。)返回与之前关联的地图映射到的值,如果地图不包含该键的映射,则返回
null
。 (Anull
返回也可以指示以前关联的地图null
与指定的键,如果实现支持null
值)。一旦调用返回,地图将不包含指定键的映射。
-
delete
public boolean delete(Object key)
从此对象中删除属性。- 参数
-
key
- 要删除的属性 - 结果
- 如果删除成功与否
-
size
public int size()
说明从界面Map
复制返回此地图中键值映射的数量。 如果地图包含Integer.MAX_VALUE
元素,则返回Integer.MAX_VALUE
。
-
values
public Collection<Object> values()
说明从接口JSObject
复制返回此对象的所有属性值的集合。
-
getProto
public Object getProto()
返回此对象的__proto__。- 结果
- __proto__对象。
-
setProto
public void setProto(Object proto)
设置此对象的__proto__。- 参数
-
proto
- 这个对象的新proto
-
getOwnPropertyDescriptor
public Object getOwnPropertyDescriptor(String key)
ECMA 8.12.1 [[GetOwnProperty]](P)- 参数
-
key
- 属性键 - 结果
- 返回此对象的命名自己属性的属性描述符,如果不存在则返回undefined。
-
getOwnKeys
public String[] getOwnKeys(boolean all)
返回与对象关联的自己的属性键的数组。- 参数
-
all
- 如果包含不可枚举的键,all
真。 - 结果
- 数组键。
-
preventExtensions
public ScriptObjectMirror preventExtensions()
将此脚本对象标记为不可扩展- 结果
- 使物体不可扩展
-
isExtensible
public boolean isExtensible()
检查此脚本对象是否可扩展- 结果
- 如果可扩展,则为true
-
seal
public ScriptObjectMirror seal()
ECMAScript 15.2.3.8 - 密封执行- 结果
- 密码脚本对象
-
isSealed
public boolean isSealed()
检查这个脚本对象是否被密封- 结果
- 如果密封则为真
-
freeze
public ScriptObjectMirror freeze()
ECMA 15.2.39 - 冻结执行。 冻结此脚本对象- 结果
- 冻结的脚本对象
-
isFrozen
public boolean isFrozen()
检查此脚本对象是否被冻结- 结果
- 如果冻结,为真
-
isUndefined
public static boolean isUndefined(Object obj)
检查给定对象的实用程序是否为ECMAScript未定义的值- 参数
-
obj
- 要检查的对象 - 结果
- 如果'obj'是ECMAScript未定义的值,则为true
-
to
public <T> T to(Class<T> type)
将此脚本对象转换为给定类型的实用程序。- 参数类型
-
T
- 要转换的目的地类型 - 参数
-
type
- 要转换的目的地类型 - 结果
- 转换对象
-
wrap
public static Object wrap(Object obj, Object homeGlobal)
如果需要,在给定对象上做一个脚本对象镜像。- 参数
-
obj
- 要包装/转换的对象 -
homeGlobal
- 此对象所属的全局。 - 结果
- 包装/转换对象
-
wrapAsJSONCompatible
public static Object wrapAsJSONCompatible(Object obj, Object homeGlobal)
如果需要,在给定对象上做一个脚本对象镜像。 创建的包装器将实现JavaList
接口,如果obj
是一个JavaScriptArray
对象; 这与Java JSON库的期望是兼容的。 通过其属性检索的数组(转移)也将实现列表接口。- 参数
-
obj
- 要包装/转换的对象 -
homeGlobal
- 此对象所属的全局。 - 结果
- 包装/转换对象
-
unwrap
public static Object unwrap(Object obj, Object homeGlobal)
如果需要,可以解开脚本对象镜像。- 参数
-
obj
- 要解开的对象 -
homeGlobal
- 此对象所属的全局 - 结果
- 展开的对象
-
wrapArray
public static Object[] wrapArray(Object[] args, Object homeGlobal)
如果需要,将对象数组包装到脚本对象镜像中。- 参数
-
args
- 要解开的数组 -
homeGlobal
- 此对象所属的全局 - 结果
- 包装数组
-
unwrapArray
public static Object[] unwrapArray(Object[] args, Object homeGlobal)
如果需要,展开一组脚本对象镜像。- 参数
-
args
- 要解开的数组 -
homeGlobal
- 该对象所属的全局 - 结果
- 展开数组
-
identical
public static boolean identical(Object obj1, Object obj2)
给定的对象是否反映到相同的底层对象?- 参数
-
obj1
- 第一个对象 -
obj2
- 第二个对象 - 结果
- 如果obj1和obj2是相同的脚本对象或其镜像,则为true。
-
toNumber
@Deprecated public double toNumber()
已过时。描述从类别复制:AbstractJSObject
返回此对象的数值。- Specified by:
-
toNumber
在接口JSObject
- 重写:
-
toNumber
在AbstractJSObject
- 结果
- 此对象的数值。
-
getDefaultValue
public Object getDefaultValue(Class<?> hint)
说明从接口JSObject
复制根据ECMAScript 5.1第8.6.2节实现此对象的[[DefaultValue]]
方法。- Specified by:
-
getDefaultValue
在接口JSObject
- 参数
-
hint
- 类型提示。 应该是null
,Number.class
或者String.class
。 - 结果
- 该对象的默认值。
-
-