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
Constructor and Description |
---|
RMIClassLoaderSpi() |
Modifier and Type | Method and Description |
---|---|
abstract String |
getClassAnnotation(类<?> cl)
|
abstract ClassLoader |
getClassLoader(String codebase)
|
abstract 类<?> |
loadClass(String codebase, String name, ClassLoader defaultLoader)
|
abstract 类<?> |
loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader)
|
public abstract 类<?> 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
类
对象
MalformedURLException
-如果
codebase
是非
null
和包含一个无效的URL,或者如果
codebase
是
null
和用于加载类提供程序特定的URL是无效的
ClassNotFoundException
-如果一个类的定义不能在指定的位置找到
public abstract 类<?> 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
方法将与RuntimePermission("getClassLoader")
权限调用;这可能会导致一个SecurityException
。这种方法的实施,也可以进行进一步的安全检查,以验证调用上下文有权限连接到所有的代码库的URL的URL路径。
codebase
- URL的列表(空格隔开),返回的类加载器会加载类,或
null
MalformedURLException
-如果
codebase
是非
null
和包含一个无效的URL,或者如果
codebase
是
null
和用于识别的类装载器提供程序特定的URL是无效的
SecurityException
-如果存在安全管理器及其
checkPermission
方法的调用失败,或如果调用者没有权限连接到所有的代码库的URL的URL路径
public abstract String getClassAnnotation(类<?> cl)
RMIClassLoader.getClassAnnotation(Class)
提供实现。返回注释字符串(表示该类定义一个位置),RMI使用注释的类描述在给定类的对象编组。
cl
-班级获得的注释
null
null
cl
NullPointerException
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.