JavaTM 2 Platform
Standard Ed. 6

java.rmi.server
類別 RMIClassLoaderSpi

java.lang.Object
  繼承者 java.rmi.server.RMIClassLoaderSpi

public abstract class RMIClassLoaderSpi
extends Object

RMIClassLoaderSpiRMIClassLoader 的服務提供者介面。尤其是,RMIClassLoaderSpi 介面提供 RMIClassLoader 的以下靜態方法的實作:

當調用這些方法之一時,其行為是向此類別的實例委託相應的方法。有關每個方法如何委託給提供者實例的詳細資訊,在各自特定方法的文檔中進行了描述。有關如何選擇提供者實例的描述,請參閱 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) 的實作。
 
從類別 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 路徑解析該類別。

此方法的實作必須返回具有給定名稱的一個類別,或拋出異常。

參數:
codebase - 要從其載入類別的 URL 的列表(由空格分隔),或者為 null
name - 要載入的類別名稱
defaultLoader - 要使用的其他上下文類別載入器,或 null
返回:
表示載入的類別的 Class 物件
拋出:
MalformedURLException - 如果 codebase 為非 null 且包含一個無效 URL,或者如果 codebasenull 且用於載入類別的特定於提供者的 URL 無效。
ClassNotFoundException - 如果在指定位置無法找到該類別的定義

loadProxyClass

public abstract Class<?> loadProxyClass(String codebase,
                                        String[] interfaces,
                                        ClassLoader defaultLoader)
                                 throws MalformedURLException,
                                        ClassNotFoundException
提供 RMIClassLoader.loadProxyClass(String,String[],ClassLoader) 的實作。選用提供的載入器,從程式碼基 URL 路徑載入實作一組具有給定名稱介面集的動態代理類別(請參閱 Proxy)。

此方法的實作必須能返回一個實作指定介面的代理類別,或拋出異常。

參數:
codebase - 要從其載入類別的 URL 列表(由空格分隔),或 null
interfaces - 要實作的代理類別的介面名稱
defaultLoader - 要使用的其他上下文類別載入器,或 null
返回:
實作指定介面的動態代理類別
拋出:
MalformedURLException - 如果 codebase 為非 null 且包含一個無效 URL,或者如果 codebasenull 且用於載入類別的特定於提供者的 URL 無效。
ClassNotFoundException - 如果在指定位置無法找到某個指定介面的定義,或者如果動態代理類別的創建失敗(例如,如果 Proxy.getProxyClass(ClassLoader,Class[]) 拋出給定介面列表的 IllegalArgumentException

getClassLoader

public abstract ClassLoader getClassLoader(String codebase)
                                    throws MalformedURLException
提供 RMIClassLoader.getClassLoader(String) 的實作。返回從給定程式碼基 URL 路徑載入類別的類別載入器。

如果存在安全管理器,則使用 RuntimePermission("getClassLoader") 權限調用其 checkPermission 方法;這會導致 SecurityException。此方法的實作還可以執行進一步的安全檢查,以驗證調用上下文是否具有連接到程式碼基 URL 路徑中的所有 URL 的權限。

參數:
codebase - 返回的類別載入器將從其載入類別的 URL 列表(由空格分隔),或 null
返回:
從給定程式碼基 URL 路徑載入類別的類別載入器
拋出:
MalformedURLException - 如果 codebase 為非 null 且包含一個無效 URL,或者如果 codebasenull 且用於標識類別載入器的特定於提供者的 URL 無效
SecurityException - 如果存在安全管理器且其 checkPermission 方法的調用失敗,或者如果調用方沒有連接到程式碼基 URL 路徑中所有 URL 的權限

getClassAnnotation

public abstract String getClassAnnotation(Class<?> cl)
提供 RMIClassLoader.getClassAnnotation(Class) 的實作。返回表示類別定義位置的註釋字元串,RMI 將在編組給定類別的物件時用其註釋類別描述符。

參數:
cl - 要獲得其註釋的類別
返回:
在編組時用於註釋給定類別的字元串,或 null
拋出:
NullPointerException - 如果 clnull

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only