Spec-Zone.ru › OpenJDK 8

Класс RemoteObjectInvocationHandler

  • java.lang.Object
    • java.rmi.server.RemoteObject
      • java.rmi.server.RemoteObjectInvocationHandler
Все реализуемые интерфейсы:
Serializable, InvocationHandler, Remote

public class RemoteObjectInvocationHandler
extends RemoteObject
implements InvocationHandler

Реализация интерфейса InvocationHandler для использования с Java Remote Method Invocation (Java RMI). Этот обработчик вызовов может быть использован совместно с экземпляром динамического прокси в качестве замены предварительно сгенерированному классу-заглушке.

Приложения не должны использовать этот класс напрямую. Дистанционный объект, экспортированный для использования динамического прокси с UnicastRemoteObject или Activatable, имеет экземпляр этого класса в качестве обработчика вызовов этого прокси.

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

Поля

Поля, унаследованные от класса java.rmi.server.RemoteObject

ref

Конструкторы

Конструктор и описание
RemoteObjectInvocationHandler(RemoteRef ref)

Создает новый RemoteObjectInvocationHandler с указанным RemoteRef.

Методы

Модификатор и тип Метод и описание
Object invoke(Object proxy, Method method, Object[] args)

Обрабатывает вызов метода, сделанный на экземпляре обертывающего прокси, proxy, и возвращает результат.

Методы, унаследованные от класса java.rmi.server.RemoteObject

equals, getRef, hashCode, toString, toStub

Методы, унаследованные от класса java.lang.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: Возвращает строковое представление прокси.

В противном случае вызов удаленного метода выполняется следующим образом:

  • Если proxy не является экземпляром интерфейса Remote, то выбрасывается IllegalArgumentException.
  • В противном случае вызывается метод invoke на RemoteRef обработчика вызовов, передавая 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 - исключение, которое должно быть выброшено при вызове метода на экземпляре прокси
См. также:
UndeclaredThrowableException

© 1993, 2020, 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.

Spec-Zone.ru

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