java.lang.Object
java.rmi.server.RMIClassLoaderSpi
public abstract class RMIClassLoaderSpi extends Object
RMIClassLoaderSpiは、RMIClassLoaderのサービス・プロバイダ・インタフェースです。 特に、RMIClassLoaderSpiインスタンスは、RMIClassLoaderの次のstaticメソッドの実装を提供します。
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のマニュアルを参照してください。 - 導入されたバージョン:
- 1.4
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract StringgetClassAnnotation(Class<?> cl) RMIClassLoader.getClassAnnotation(Class)の実装を提供します。abstract ClassLoadergetClassLoader(String codebase) RMIClassLoader.getClassLoader(String)の実装を提供します。abstract Class<?>loadClass(String codebase, String name, ClassLoader defaultLoader) abstract Class<?>loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader)
-
コンストラクタの詳細
-
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のリスト(区切り文字はスペース)、またはnullname- ロード対象クラスの名前defaultLoader- 状況に応じて使用する追加クラス・ローダー、またはnull- 戻り値:
- ロードされたクラスを表す
Classオブジェクト - 例外:
MalformedURLException-codebaseがnull以外でかつ無効なURLを含んでいる場合、またはcodebaseがnullでかつクラスのロード時に使用されたプロバイダ固有URLが無効である場合ClassNotFoundException- クラスの定義が指定された場所になかった場合
-
loadProxyClass
public abstract Class<?> loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException RMIClassLoader.loadProxyClass(String,String[],ClassLoader)の実装を提供します。 指定された名前を持つインタフェース群を実装した動的プロキシ・クラス(Proxyを参照してください)を、指定されたコード・ベースURLパスからロードします。指定されたローダーを使用することもできます。このメソッドの実装は、指定されたインタフェースを実装するプロキシ・クラスを返すか、例外をスローする必要があります。
- パラメータ:
codebase- クラスのロード元のURLのリスト(区切り文字はスペース)、またはnullinterfaces- プロキシ・クラスが実装するインタフェースの名前defaultLoader- 状況に応じて使用する追加クラス・ローダー、またはnull- 戻り値:
- 指定されたインタフェースを実装する動的プロキシ・クラス
- 例外:
MalformedURLException-codebaseがnull以外でかつ無効なURLを含んでいる場合、またはcodebaseがnullでかつクラスのロード時に使用されたプロバイダ固有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に対するアクセス権を持っているかどうかについて、セキュリティ・チェックを行うこともあります。- パラメータ:
codebase- 返されるクラス・ローダーがロードするクラスが格納されているURLのリスト(区切り文字はスペース)、またはnull- 戻り値:
- 指定されたコード・ベースURLパスからクラスをロードするクラス・ローダー
- 例外:
MalformedURLException-codebaseがnull以外でかつ無効なURLを含んでいる場合、またはcodebaseがnullでかつクラス・ローダーの識別に使用されたプロバイダ固有URLが無効である場合SecurityException- セキュリティ・マネージャが存在するときに、そのcheckPermissionメソッドが失敗した場合。または、呼出し側がコード・ベースURLパス内のすべてのURLに接続するアクセス権を持っていない場合
-
getClassAnnotation
RMIClassLoader.getClassAnnotation(Class)の実装を提供します。 クラス定義の位置を示す注釈文字列を返します。RMIはこれを使用して、指定されたクラスのオブジェクトの整列化を行う際に、クラス記述子に注釈を加えます。- パラメータ:
cl- 注釈を取得する対象のクラス- 戻り値:
- 整列化時に指定されたクラスに注釈を加えるために使用される文字列、または
null - 例外:
NullPointerException-clがnullである場合
-