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