Spec-Zone .ru
спецификации, руководства, описания, API
|
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
для описания того, как выбирается экземпляр провайдера.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) . |
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
- если определение для класса не могло бы быть найдено в указанном расположении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
для данного интерфейсного списка)public abstract ClassLoader getClassLoader(String codebase) throws MalformedURLException
RMIClassLoader.getClassLoader(String)
. Возвращает загрузчик класса, который загружает классы из данной кодовой базы путь URL. Если есть кормушка безопасности, checkPermission
метод будет вызван с a RuntimePermission("getClassLoader")
разрешение; это могло привести к a SecurityException
. Реализация этого метода может также выполнить дальнейшие проверки безопасности, чтобы проверить, что у контекста вызова есть разрешение, чтобы соединить со всеми URL в кодовой базе путь URL.
codebase
- список URL (разделенных пробелом), от которого возвращенный загрузчик класса загрузит классы из, или null
MalformedURLException
- если codebase
не -null
и содержит недопустимый URL, или если codebase
null
и специфичный для провайдера URL, используемый, чтобы идентифицировать загрузчик класса, недопустимSecurityException
- если есть менеджер безопасности и вызов checkPermission
сбои метода, или если у вызывающей стороны нет разрешения, чтобы соединить со всеми URL в кодовой базе путь URLpublic abstract String getClassAnnotation(Class<?> cl)
RMIClassLoader.getClassAnnotation(Class)
. Возвращает строку аннотации (представляющий расположение для определения класса), который RMI будет использовать, чтобы аннотировать дескриптор класса, упорядочивая объекты данного класса.cl
- класс, чтобы получить аннотацию дляnull
NullPointerException
- если cl
null
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.