パッケージ jakarta.activation
クラス CommandInfo
java.lang.ObjectSE
jakarta.activation.CommandInfo
CommandInfo クラスは、コマンドリクエストの結果を記述するために CommandMap 実装によって使用されます。これは、リクエストされた動詞と Bean のインスタンスの両方をリクエスト者に提供します。コマンドを実装するクラスの名前を返すメソッドもありますが 、有効な値を返すことは保証されていません。これは、CommandInfo をサブクラス化する CommandMap 実装が特別な動作を提供できるようにするためです。たとえば、CommandMap は JavaBeans を動的に生成できます。この場合、クラス名だけから正しい状態情報をすべて含むオブジェクトを作成できない可能性があります。
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明コマンドのクラス名を返します。コマンド動詞を返します。getCommandObject
(DataHandler dh, ClassLoaderSE loader) インスタンス化された JavaBean コンポーネントを返します。
コンストラクターの詳細
CommandInfo
CommandInfo のコンストラクター。- パラメーター:
verb
- この CommandInfo が説明するコマンド動詞。className
- コマンドの完全修飾クラス名。
メソッドの詳細
getCommandName
コマンド動詞を返します。- 戻り値:
- コマンド動詞。
getCommandClass
コマンドのクラス名を返します。 このメソッドは、CommandMap が独自の目的で CommandInfo をサブクラス化した場合に null を返す場合があります。つまり、クラス名を知っているだけでは、コマンドで正しい状態を作成できない場合があります。 有効な値を返すこの方法に依存しないでください!- 戻り値:
- コマンドのクラス名、または null
getCommandObject
public ObjectSE getCommandObject(DataHandler dh, ClassLoaderSE loader) throws IOExceptionSE, ClassNotFoundExceptionSE インスタンス化された JavaBean コンポーネントを返します。現在のランタイム環境が
Beans.instantiate
をサポートしている場合は、それを使用して JavaBeans コンポーネントをインスタンス化します。それ以外の場合は、Class.forName
SE を使用します。コンポーネントクラスはパブリックである必要があります。Java SE 9 以降では、コンポーネントクラスが名前付きモジュールにある場合は、エクスポートされたパッケージに含まれている必要があります。
Bean が
jakarta.activation.CommandObject
インターフェースを実装している場合は、そのsetCommandContext
メソッドを呼び出します。DataHandler パラメーターが null の場合、Bean はデータなしでインスタンス化されます。注: これは、このメソッドが InputStream にアクセスしようとしたときに、何らかの理由で渡された DataHandler が IOExceptions をスローする場合に役立つことがあります。インスタンス化できる場合、呼び出し元は Bean への参照を取得できます。
Bean が CommandObject インターフェースを実装していない場合、このメソッドは java.io.Externalizable インターフェースを実装しているかどうかを確認します。実装している場合、DataHandler から InputStream を取得できる場合は、Bean の readExternal メソッドが呼び出されます。
- パラメーター:
dh
- コマンドに渡されるデータを記述する DataHandler。loader
- Bean をインスタンス化するために使用される ClassLoader。- 戻り値:
- Bean
- 例外:
IOExceptionSE
- データの読み取りに失敗した場合ClassNotFoundExceptionSE
- コマンドオブジェクトクラスが見つからない場合- 関連事項: