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のマニュアルを参照してください。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)
|
abstract Class<?> |
loadProxyClass(String codebase, String[] interfaces, ClassLoader defaultLoader)
|
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 - 状況に応じて使用する追加クラス・ローダー、またはnullClassオブジェクト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のリスト(区切り文字はスペース)、またはnullinterfaces - プロキシ・クラスが実装するインタフェースの名前defaultLoader - 状況に応じて使用する追加クラス・ローダー、またはnullMalformedURLException - codebaseがnull以外でかつ無効なURLを含んでいる場合、またはcodebaseがnullでかつクラスのロード時に使用されたプロバイダ固有URLが無効である場合ClassNotFoundException - 指定されたインタフェースの定義のいずれかが指定された場所に見つからない場合、または動的プロキシ・クラスの作成に失敗した場合(Proxy.getProxyClass(ClassLoader,Class[])が、指定されたインタフェース・リストに対してIllegalArgumentExceptionをスローしたときなど)public abstract ClassLoader getClassLoader(String codebase) throws MalformedURLException
RMIClassLoader.getClassLoader(String)の実装を提供します。指定されたコード・ベースURLパスからクラスをロードするクラス・ローダーを返します。
セキュリティ・マネージャが存在する場合は、RuntimePermission("getClassLoader")アクセス権を使用してcheckPermissionメソッドが呼び出され、この結果SecurityExceptionになることがあります。このメソッドの実装は、呼出し側コンテキストがコード・ベースURLパス内のすべてのURLに対するアクセス権を持っているかどうかについて、セキュリティ・チェックを行うこともあります。
codebase - 返されるクラス・ローダーがロードするクラスが格納されているURLのリスト(区切り文字はスペース)、またはnullMalformedURLException - codebaseがnull以外でかつ無効なURLを含んでいる場合、またはcodebaseがnullでかつクラス・ローダーの識別に使用されたプロバイダ固有URLが無効である場合SecurityException - セキュリティ・マネージャが存在するときに、そのcheckPermissionメソッドが失敗した場合。または、呼出し側がコード・ベースURLパス内のすべてのURLに接続するアクセス権を持っていない場合public abstract String getClassAnnotation(Class<?> cl)
RMIClassLoader.getClassAnnotation(Class)の実装を提供します。クラス定義の位置を示す注釈文字列を返します。RMIはこれを使用して、指定されたクラスのオブジェクトの整列化を行う際に、クラス記述子に注釈を加えます。cl - 注釈を取得する対象のクラスnullNullPointerException - clがnullである場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.