% 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
の
各メソッドの宣言のラムダリストにある、
各キーワードパラメーター指定子のキーワード名は、
それらのメソッドが適用されるすべてのクラスに対して、
有効な初期化引数の名前として宣言されます。