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.