Spec-Zone.ru › OpenJDK 21

Класс 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 для описания выбора экземпляра поставщика.
Since:
1.4
See Also:
  • 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).

Методы, унаследованные от класса java.lang.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 кодовой базы.

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

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

loadProxyClass

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

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

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

getClassLoader

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

Если существует менеджер безопасности, его метод checkPermission будет вызван с разрешением RuntimePermission("getClassLoader"); это может привести к SecurityException. Реализация этого метода также может выполнить дополнительные проверки безопасности, чтобы убедиться, что вызывающий контекст имеет разрешение на подключение ко всем URL в пути URL кодовой базы.

Parameters:
codebase - список URL (разделенных пробелами), из которых возвращаемый загрузчик классов будет загружать классы, или null
Returns:
загрузчик классов, который загружает классы из заданного пути URL кодовой базы
Throws:
MalformedURLException - если codebase не пустой и содержит недействительный URL, или если codebase пустой и используется недействительный URL поставщика для идентификации загрузчика классов
SecurityException - если существует менеджер безопасности и вызов его метода checkPermission завершился ошибкой, или если вызывающий контекст не имеет разрешения на подключение ко всем URL в пути URL кодовой базы

getClassAnnotation

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

© 1993, 2023, 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/21/docs/api/java.rmi/java/rmi/server/RMIClassLoaderSpi.html

Spec-Zone.ru

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