COBCH1486 フィールド <フィールド名> はコンストラクター内でのみ変更できる

プログラムには、INITIALIZE ONLY 指定で定義されたインスタンス フィールドが含まれており、コンストラクター (new) メソッドの外部で変更されています。

解決方法:

コードを変更してコンストラクター メソッド内のインスタンス フィールドを変更するか、他の適切なコード調整を行ってコーディング エラーを修正します。

例:

次の例では、コンストラクター メソッドではない M1 メソッドが INIT-ONLY フィールドを変更します。INIT-ONLY フィールドは INITIALIZE ONLY 指定で定義されています。これは正しくありません。この例は、new メソッドが変更する INIT-ONLY フィールドも正しく示しています。new メソッドはコンストラクター メソッドであるため、これは正しい用法です。

       class-id a.
       01 init-only string initialize only.
       method-id m1.
           move "A" to init-only    *> Error
       end method.
       method-id new.
           move "A" to init-only    *> Ok
       end method.
       end class.