% Standard-Generic-Function REINITIALIZE-INSTANCE
Standard Generic Function REINITIALIZE-INSTANCE
reinitialize-instance instance
&rest initargs &key &allow-other-keys => instance
reinitialize-instance (instance standard-object) &rest initargs
instance - オブジェクト
initargs - 初期化引数リスト
ジェネリック関数reinitialize-instanceは、
instanceの局所スロットの値をinitargsに従って
変更するときに使われます。
このジェネリック関数は、ユーザーによって呼び出すことができます。
システムが提供するreinitialize-instanceのプライマリメソッドは
initargsの有効性の確認を行い、
有効だと宣言されていないものがinitargsで与えられていた場合は、
エラーが通知されます。
このメソッドはジェネリック関数shared-initializeを次の引数で呼び出します。
instance, nil
(これはinitformでスロットを初期化しないという意味です),
そして受け取ったinitargs。
なし。
ジェネリック関数reinitialize-instanceは局所スロットの値を変更します。
なし。
システムが提供するreinitialize-instanceのプライマリメソッドは
有効だと宣言されていないものがinitargsで与えられていた場合は、
エラーが通知されます。
initialize-instance,
shared-initialize,
update-instance-for-redefined-class,
update-instance-for-different-class,
slot-boundp,
slot-makunbound,
7.3. インスタンスの再初期化,
7.1.4. 初期化引数の規則,
7.1.2. 初期化引数の有効性の宣言
initargsは、defclassの:initarg引数によって、
あるいはreinitialize-instanceかshared-initializeの
メソッドの宣言によって、有効であると宣言されます。
reinitialize-instanceかshared-initializeの
各メソッドの宣言のラムダリストにある、
各キーワードパラメーター指定子のキーワード名は、
それらのメソッドが適用されるすべてのクラスに対して、
有効な初期化引数の名前として宣言されます。