Spec-Zone.ru › OpenJDK 25

Класс RemoteObjectInvocationHandler

java.lang.Object
java.rmi.server.RemoteObject
java.rmi.server.RemoteObjectInvocationHandler
Все реализованные интерфейсы:
Serializable, InvocationHandler, Remote
public class RemoteObjectInvocationHandler extends RemoteObject implements InvocationHandler
Реализация интерфейса InvocationHandler для использования с удалённым вызовом методов Java (Java RMI). Этот обработчик вызовов можно использовать вместе с экземпляром динамического прокси в качестве замены предварительно сгенерированного класса заглушки.

Не предполагается, что приложения будут использовать этот класс напрямую. Удалённый объект, экспортированный для использования динамического прокси с помощью UnicastRemoteObject, содержит экземпляр этого класса в качестве обработчика вызовов прокси.

Начиная с версии:
1.5
См. также:
  • Сериализованная форма

Краткое описание полей

Поля, объявленные в классе RemoteObject

ref

Краткое описание конструкторов

Конструктор Описание
RemoteObjectInvocationHandler(RemoteRef ref)
Создаёт новый RemoteObjectInvocationHandler, сконструированный с указанным RemoteRef.

Краткое описание методов

Модификатор и тип Метод Описание
Object invoke(Object proxy, Method method, Object[] args)
Обрабатывает вызов метода, выполненный для инкапсулирующего экземпляра прокси, proxy, и возвращает результат.

Методы, объявленные в классе RemoteObject

equals, getRef, hashCode, toString, toStub

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

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.
  • В противном случае для RemoteRef этого обработчика вызовов вызывается метод invoke, которому передаются proxy, method, args и хеш метода (определённый в разделе 8.3 «Спецификации удалённого вызова методов Java (RMI)») для method; результат возвращается вызывающему коду.
  • Если RemoteRef.invoke выбрасывает исключение, и это исключение является проверяемым исключением, несовместимым ни с одним исключением в предложении throws метода, реализуемого классом proxy, это исключение оборачивается в UnexpectedException, после чего обёрнутое исключение выбрасывается. В противном случае исключение, выброшенное invoke, выбрасывается этим методом.

Семантика этого метода не определена, если аргументы не могли быть созданы экземпляром допустимого класса динамического прокси, содержащего этот обработчик вызовов.

Определён в:
invoke в интерфейсе InvocationHandler
Параметры:
proxy — экземпляр прокси, для которого был вызван метод
method — экземпляр Method, соответствующий методу интерфейса, вызванному для экземпляра прокси
args — массив объектов, содержащий значения аргументов, переданных при вызове метода для экземпляра прокси, или null, если метод не принимает аргументов
Возвращает:
значение, возвращаемое при вызове метода для экземпляра прокси
Исключения:
Throwable — исключение, выбрасываемое при вызове метода для экземпляра прокси
См. также:
  • UndeclaredThrowableException

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.rmi/java/rmi/server/RemoteObjectInvocationHandler.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API