storeField()

システム関数 JavaLib.storeField は、クラス・フィールドまたはオブジェクト・フィールドの値を EGL Java™ オブジェクト・スペースに格納します。オブジェクトの保管に使用する ID が既にオブジェクト・スペース内に存在している場合は、次のステップと同等のアクションが実行されます。

クラス・フィールドまたはオブジェクト・フィールドに、オブジェクトではなく Java プリミティブが含まれる場合、EGL は、プリミティブを表すオブジェクトを保管します。例えば、フィールドに int が含まれる場合、EGL は、java.lang.Integer 型のオブジェクトを保管します。

  JavaLib.storeField(
    storeId javaObjId in,
    identifierOrClass javaObjIdOrClass in,
    field STRING in)
storeId
オブジェクトとともに保管する ID。

この引数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、UNICODE 型の項目です。ID は、後述の例のように、objID にキャストする必要があります。EGL は、大/小文字の区別がある引数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。

identifierOrClass
この引数は、次のエンティティーのいずれかです。
  • オブジェクト・スペース内のオブジェクトを参照する ID
  • Java クラスの完全修飾名

この引数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、UNICODE 型の項目です。オブジェクトの ID を指定する場合は、後述の例のように、その ID を objID にキャストする必要があります。次の引数に static フィールドを指定する場合は、この引数にクラスを指定することをお勧めします。

EGL は、大/小文字の区別がある引数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。

field
オブジェクトを参照するフィールドの名前。

この引数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、UNICODE 型の項目です。大/小文字の区別があるストリングの先頭と最後から、1 バイトのブランクと 2 バイトのブランクが削除されます。

以下に例を示します。
  JavaLib.storeField( (objId)"myStoreId", 
    (objId)"myId", "myField");

JavaLib.storeField の処理中にエラーが発生すると、sysVar.errorCode は以下の表の値に設定されます。

sysVar.errorCode の値 説明
00001000 呼び出されたメソッドによって、またはクラスの初期化の結果として、例外がスローされました。
00001001 オブジェクトが NULL でした。または指定された ID がオブジェクト・スペース内にありませんでした。
00001002 指定された名前の public メソッド、フィールド、またはクラスが存在しないか、ロードできません。
00001007 メソッドまたはフィールドに関する情報の取得中に、SecurityException または IllegalAccessException がスローされました。または、final 宣言されたフィールドの値を設定しようとしました。
00001009 クラス名ではなく、ID を指定する必要があります。メソッドまたはフィールドが静的ではありません。

関連概念
EGL 関数の構文図

関連リファレンス
EGL ライブラリー JavaLib
getField()
invoke()
isNull()
isObjID()
qualifiedTypeName()
remove()
removeAll()
setField()
store()
storeCopy()
storeNew()

関連タスク
EGL 文およびコマンドの構文図

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.