Spec-Zone.ru › OpenJDK 25

Класс RMIClassLoaderSpi

java.lang.Object
java.rmi.server.RMIClassLoaderSpi
public abstract class RMIClassLoaderSpi extends Object
RMIClassLoaderSpi — это интерфейс поставщика служб для RMIClassLoader. В частности, экземпляр RMIClassLoaderSpi предоставляет реализацию следующих статических методов RMIClassLoader:
  • RMIClassLoader.loadClass(URL,String)
  • RMIClassLoader.loadClass(String,String)
  • RMIClassLoader.loadClass(String,String,ClassLoader)
  • RMIClassLoader.loadProxyClass(String,String[],ClassLoader)
  • RMIClassLoader.getClassLoader(String)
  • RMIClassLoader.getClassAnnotation(Class)
При вызове одного из этих методов его поведение заключается в делегировании соответствующему методу экземпляра этого класса. Подробное описание делегирования каждого метода экземпляру поставщика приведено в документации к соответствующему методу. Описание выбора экземпляра поставщика см. в документации для RMIClassLoader.
Начиная с:
1.4
См. также:
  • RMIClassLoader

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

Конструктор Описание
RMIClassLoaderSpi()
Конструктор для вызова из подклассов.

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

Модификатор и тип Метод Описание
abstract String getClassAnnotation(Class<?> cl)
Предоставляет реализацию для RMIClassLoader.getClassAnnotation(Class).
abstract ClassLoader getClassLoader(String codebase)
Предоставляет реализацию для RMIClassLoader.getClassLoader(String).
abstract Class<?> loadClass(String codebase, String name, ClassLoader defaultLoader)
Предоставляет реализацию для RMIClassLoader.loadClass(URL,String), RMIClassLoader.loadClass(String,String) и RMIClassLoader.loadClass(String,String,ClassLoader).
abstract Class<?> loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader)
Предоставляет реализацию для RMIClassLoader.loadProxyClass(String,String[],ClassLoader).

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

RMIClassLoaderSpi

public RMIClassLoaderSpi()
Конструктор для вызова из подклассов.

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

loadClass

public abstract Class<?> loadClass(String codebase, String name, ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException
Предоставляет реализацию для RMIClassLoader.loadClass(URL,String), RMIClassLoader.loadClass(String,String) и RMIClassLoader.loadClass(String,String,ClassLoader). Загружает класс из пути URL базы кода, при необходимости используя указанный загрузчик. Обычно реализация поставщика пытается разрешить указанный класс с помощью заданного defaultLoader, если он указан, прежде чем пытаться разрешить класс из пути URL базы кода.

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

Параметры:
codebase — список URL-адресов (разделённых пробелами), из которых следует загрузить класс, или null
name — имя загружаемого класса
defaultLoader — дополнительный контекстный загрузчик классов, или null
Возвращает:
объект Class, представляющий загруженный класс
Выбрасывает:
MalformedURLException — если codebase не является null и содержит недопустимый URL-адрес либо если codebase является null и URL-адрес, используемый поставщиком для загрузки классов, недопустим
ClassNotFoundException — если определение класса не найдено в указанном расположении

loadProxyClass

public abstract Class<?> loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException
Предоставляет реализацию для RMIClassLoader.loadProxyClass(String,String[],ClassLoader). Загружает класс динамического прокси (см. Proxy), реализующий набор интерфейсов с указанными именами из пути URL базы кода, при необходимости используя указанный загрузчик.

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

Параметры:
codebase — список URL-адресов (разделённых пробелами), из которых следует загрузить классы, или null
interfaces — имена интерфейсов, которые должен реализовывать класс прокси
defaultLoader — дополнительный контекстный загрузчик классов, или null
Возвращает:
класс динамического прокси, реализующий указанные интерфейсы
Выбрасывает:
MalformedURLException — если codebase не является null и содержит недопустимый URL-адрес либо если codebase является null и URL-адрес, используемый поставщиком для загрузки классов, недопустим
ClassNotFoundException — если определение одного из указанных интерфейсов не найдено в заданном расположении либо если не удалось создать класс динамического прокси (например, если Proxy.getProxyClass(ClassLoader,Class[]) выбросил бы IllegalArgumentException для указанного списка интерфейсов)

getClassLoader

public abstract ClassLoader getClassLoader(String codebase) throws MalformedURLException
Предоставляет реализацию для RMIClassLoader.getClassLoader(String). Возвращает загрузчик классов, загружающий классы из указанного пути URL базы кода.
Параметры:
codebase — список URL-адресов (разделённых пробелами), из которых возвращаемый загрузчик классов будет загружать классы, или null
Возвращает:
загрузчик классов, загружающий классы из указанного пути URL базы кода
Выбрасывает:
MalformedURLException — если codebase не является null и содержит недопустимый URL-адрес либо если codebase является null и URL-адрес, используемый поставщиком для идентификации загрузчика классов, недопустим

getClassAnnotation

public abstract String getClassAnnotation(Class<?> cl)
Предоставляет реализацию для RMIClassLoader.getClassAnnotation(Class). Возвращает строку аннотации (представляющую расположение определения класса), которую RMI будет использовать для аннотирования дескриптора класса при маршализации объектов указанного класса.
Параметры:
cl — класс, для которого требуется получить аннотацию
Возвращает:
строку для аннотирования указанного класса при его маршализации или null
Выбрасывает:
NullPointerException — если cl является null

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/RMIClassLoaderSpi.html

Spec-Zone.ru

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