Modifier | Constructor and Description |
---|---|
|
ConstantCallSite(MethodHandle target)
创建一个永久目标的调用站点。
|
protected |
ConstantCallSite(MethodType targetType, MethodHandle createTargetHook)
创建一个具有永久目标的调用站点,可能绑定到调用站点本身。
|
Modifier and Type | Method and Description |
---|---|
MethodHandle |
dynamicInvoker()
返回此调用站点的永久目标。
|
MethodHandle |
getTarget()
返回调用点目标的方法,它的行为就像一个
final 领域的
ConstantCallSite 。
|
void |
setTarget(MethodHandle ignore)
总是抛出一个
UnsupportedOperationException 。
|
public ConstantCallSite(MethodHandle target)
target
-目标要与这个电话相关网站永久
NullPointerException
如果提出的目标是零
protected ConstantCallSite(MethodType targetType, MethodHandle createTargetHook) throws Throwable
呼叫的现场施工时的createTargetHook
调用产生实际的目标,如通过打电话的形式(MethodHandle) createTargetHook.invoke(this)
。
请注意,用户代码不能执行这样的行动直接在子类的构造函数,因为目标必须在ConstantCallSite
构造函数返回固定。
钩说绑定调用点到目标的方法处理,和一个典型的行动将someTarget.bindTo(this)
。然而,钩子是自由采取任何行动,包括忽略了呼叫站点和返回一个恒定的目标。
钩子返回的结果必须是调用站点的完全相同类型的方法句柄。
而钩子被称为,新ConstantCallSite
对象在部分构造状态。在这种状态下,一个叫getTarget
,或任何其他试图使用的目标,将导致IllegalStateException
。它在任何时候都使用type
方法获得调用网站的类型是合法的。
targetType
-类型化的方法把这个调用相关网站永久
createTargetHook
-处理方法调用(在调用点)产生的调用网站的目标
WrongMethodTypeException
如果钩不能在要求的参数调用时,如果目标被钩回来不是给定的
targetType
NullPointerException
如果钩返回一个空值
ClassCastException
如果钩子返回的东西以外的其他
MethodHandle
Throwable
-什么被钩子函数
public final MethodHandle getTarget()
final
领域的
ConstantCallSite
。也就是说,目标总是传递给创建此实例的构造函数调用的原始值。
getTarget
方法重写,继承类
CallSite
IllegalStateException
-如果
ConstantCallSite
构造函数尚未完成
ConstantCallSite
,
VolatileCallSite
,
CallSite.setTarget(java.lang.invoke.MethodHandle)
,
getTarget()
,
MutableCallSite.getTarget()
,
VolatileCallSite.getTarget()
public final void setTarget(MethodHandle ignore)
UnsupportedOperationException
。这种呼叫站点不能改变它的目标。
setTarget
方法重写,继承类
CallSite
ignore
提出了网站的调用一个新的目标,这是不容忽视的
UnsupportedOperationException
-因为这种调用位置不能改变它的目标
CallSite.getTarget()
,
setTarget(java.lang.invoke.MethodHandle)
,
MutableCallSite.setTarget(java.lang.invoke.MethodHandle)
,
VolatileCallSite.setTarget(java.lang.invoke.MethodHandle)
public final MethodHandle dynamicInvoker()
CallSite.dynamicInvoker
。
dynamicInvoker
方法重写,继承类
CallSite
IllegalStateException
-如果
ConstantCallSite
构造函数尚未完成
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.