Spec-Zone .ru
спецификации, руководства, описания, API
|
Модификатор | Конструктор и Описание |
---|---|
|
ConstantCallSite(MethodHandle target)
Создает сайт вызова с постоянной целью.
|
protected |
ConstantCallSite(MethodType targetType, MethodHandle createTargetHook)
Создает сайт вызова с постоянной целью, возможно связанной с сайтом вызова непосредственно.
|
Модификатор и Тип | Метод и Описание |
---|---|
MethodHandle |
dynamicInvoker()
Возвраты постоянная цель сайта этого вызова.
|
MethodHandle |
getTarget()
Возвращает целевой метод сайта вызова, который ведет себя как a
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
- если рычаг возвращает что-то другое чем a 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
конструктор не завершился
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.