- java.lang.Object
-
- jdk.nashorn.api.scripting.AbstractJSObject
-
- jdk.nashorn.api.scripting.ScriptObjectMirror
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 Objectcall(Object thiz, Object... args)将此对象称为JavaScript函数。ObjectcallMember(String functionName, Object... args)调用成员函数voidclear()从该地图中删除所有的映射(可选操作)。booleancontainsKey(Object key)如果此映射包含指定键的映射,则返回true。booleancontainsValue(Object value)如果此映射将一个或多个键映射到指定的值,则返回true。booleandelete(Object key)从此对象中删除属性。Set<Map.Entry<String,Object>>entrySet()返回此地图中包含的映射的Set视图。booleanequals(Object other)指示一些其他对象是否等于此。Objecteval(String s)评估JavaScript表达式。ScriptObjectMirrorfreeze()ECMA 15.2.39 - 冻结执行。Objectget(Object key)返回此映射映射指定键的值。StringgetClassName()ECMA [[Class]]属性ObjectgetDefaultValue(Class<?> hint)根据ECMAScript 5.1第8.6.2节实现此对象的[[DefaultValue]]方法。ObjectgetMember(String name)检索此JavaScript对象的命名成员。String[]getOwnKeys(boolean all)返回与对象关联的自己的属性键的数组。ObjectgetOwnPropertyDescriptor(String key)ECMA 8.12.1 [[GetOwnProperty]](P)ObjectgetProto()返回此对象的__proto__。ObjectgetSlot(int index)检索此JavaScript对象的索引成员。inthashCode()返回对象的哈希码值。booleanhasMember(String name)该对象是否具有命名成员?booleanhasSlot(int slot)该对象是否具有索引属性?static booleanidentical(Object obj1, Object obj2)给定的对象是否反映到相同的底层对象?booleanisArray()这是一个数组对象吗?booleanisEmpty()如果此映射不包含键值映射,则返回true。booleanisExtensible()检查此脚本对象是否可扩展booleanisFrozen()检查此脚本对象是否被冻结booleanisFunction()这是一个函数对象吗?booleanisInstance(Object instance)检查给定对象是否为“this”对象的实例。booleanisSealed()检查这个脚本对象是否被密封booleanisStrictFunction()这是一个'使用strict'功能对象吗?static booleanisUndefined(Object obj)检查给定对象的实用程序是否为ECMAScript未定义的值Set<String>keySet()返回此对象的所有属性名称集。ObjectnewObject(Object... args)调用这个“构造函数”JavaScript函数来创建一个新对象。ScriptObjectMirrorpreventExtensions()将此脚本对象标记为不可扩展Objectput(String key, Object value)设置一个命名值。voidputAll(Map<? extends String,? extends Object> map)将给定的Map中的所有映射添加到此Bindings。Objectremove(Object key)如果存在该地图,则从该地图中删除该密钥的映射(可选操作)。voidremoveMember(String name)从此JavaScript对象中删除一个已命名的成员ScriptObjectMirrorseal()ECMAScript 15.2.3.8 - 密封执行voidsetIndexedPropertiesToExternalArrayData(ByteBuffer buf)Nashorn扩展名:setIndexedPropertiesToExternalArrayData。voidsetMember(String name, Object value)在此JavaScript对象中设置一个命名成员voidsetProto(Object proto)设置此对象的__proto__。voidsetSlot(int index, Object value)在此JavaScript对象中设置索引成员intsize()返回此地图中键值映射的数量。<T> Tto(Class<T> type)将此脚本对象转换为给定类型的实用程序。doubletoNumber()已过时。StringtoString()返回对象的字符串表示形式。static Objectunwrap(Object obj, Object homeGlobal)如果需要,可以解开脚本对象镜像。static Object[]unwrapArray(Object[] args, Object homeGlobal)如果需要,展开一组脚本对象镜像。Collection<Object>values()返回此对象的所有属性值的集合。static Objectwrap(Object obj, Object homeGlobal)如果需要,在给定对象上做一个脚本对象镜像。static Object[]wrapArray(Object[] args, Object homeGlobal)如果需要,将对象数组包装到脚本对象镜像中。static ObjectwrapAsJSONCompatible(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。 - 结果
- 该对象的默认值。
-
-