Класс RemoteObjectInvocationHandler
- Все реализованные интерфейсы:
-
Serializable,InvocationHandler,Remote
public class RemoteObjectInvocationHandler extends RemoteObject implements InvocationHandler
InvocationHandler для использования с Java Remote Method Invocation (Java RMI). Этот обработчик вызовов может быть использован совместно с экземпляром динамического прокси для замены предварительно сгенерированного класса-заглушки. Приложениям не следует использовать этот класс напрямую. Объект удаленного объекта, экспортированный для использования динамического прокси с UnicastRemoteObject, имеет экземпляр этого класса в качестве обработчика вызовов этого прокси.
- С тех пор:
- 1.5
- См. также:
Краткое описание полей
Поля, объявленные в классе java.rmi.server.RemoteObject
ref
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RemoteObjectInvocationHandler |
Создаёт новый RemoteObjectInvocationHandler с указанным RemoteRef. |
Краткое описание методов
Подробное описание конструкторов
RemoteObjectInvocationHandler
public RemoteObjectInvocationHandler(RemoteRef ref)
RemoteObjectInvocationHandler с указанным RemoteRef. - Параметры:
-
ref- удалённая ссылка - Исключения:
-
NullPointerException- еслиrefявляетсяnull
Подробное описание методов
invoke
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
proxy, и возвращает результат. RemoteObjectInvocationHandler реализует этот метод следующим образом:
Если method является одним из следующих методов, он обрабатывается, как описано ниже:
-
Object.hashCode: Возвращает значение хэш-кода для прокси. -
Object.equals: Возвращаетtrueесли аргумент (args[0]) является экземпляром класса динамического прокси и этот обработчик вызовов равен обработчику вызовов этого аргумента, и возвращаетfalseв противном случае. -
Object.toString: Возвращает строковое представление прокси.
Если method переопределяет Object.finalize, он игнорируется.
В противном случае, удалённый вызов выполняется следующим образом:
- Если
proxyне является экземпляром интерфейсаRemote, то выбрасываетсяIllegalArgumentException. - В противном случае вызывается метод
invokeна удалённой ссылке этого обработчика вызовов, передаваяproxy,method,args, и хэш-код метода (определённый в разделе 8.3 спецификации "Java Remote Method Invocation (RMI)") дляmethod, и возвращается результат. - Если исключение выбрасывается методом
RemoteRef.invokeи это исключение является проверяемым исключением, которое не может быть присвоено ни одному исключению в блокеthrowsметода, реализованного классомproxy, то это исключение обертывается вUnexpectedExceptionи обернутое исключение выбрасывается. В противном случае, исключение, сгенерированное методомinvoke, выбрасывается этим методом.
Семантика этого метода не определена, если аргументы не могут быть получены экземпляром некоторого допустимого класса динамического прокси, содержащего этот обработчик вызовов.
- Определено в:
-
invokeв интерфейсеInvocationHandler - Параметры:
-
proxy- экземпляр прокси, на котором был вызван метод -
method- экземплярMethod, соответствующий методу интерфейса, вызванному на экземпляре прокси -
args- массив объектов, содержащий значения аргументов, переданных в вызов метода на экземпляре прокси, илиnull, если метод не принимает аргументы - Возвращает:
- значение, которое должно быть возвращено из вызова метода на экземпляре прокси
- Исключения:
-
Throwable- исключение, которое должно быть выброшено при вызове метода на экземпляре прокси - См. также:
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.rmi/java/rmi/server/RemoteObjectInvocationHandler.html