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

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

解決方法:

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

例:

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

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