システム関数 JavaLib.setField は、ネイティブ Java™ オブジェクトまたはクラス内のフィールドに値を設定します。JavaLib.setField は、Java アクセス関数の 1 つです。
JavaLib.setField( identifierOrClass javaObjId in, field STRING in, value anyEglPrimitive in)
この引数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、STRING 型、または UNICODE 型の変数のいずれかです。オブジェクトの ID を指定する場合は、後述の例のように、その ID を objID にキャストする必要があります。EGL は、大/小文字の区別がある引数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。
この引数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、STRING 型、または UNICODE 型の変数のいずれかです。大/小文字の区別があるストリングの先頭と最後から、1 バイトのブランクと 2 バイトのブランクが削除されます。
『Java アクセス (システム・ワード)』に記述したキャストが必要な場合があります。
Java の型変換の規則が適用されます。例えば、int として宣言されたフィールドに short を割り当てても、エラーは発生しません。
JavaLib.setField( (objID)"myId", "myField", (short)myNumItem );
JavaLib.setField の処理中にエラーが発生すると、SysVar.errorCode は、以下の表にリストされている値に設定されます。
SysVar.errorCode の値 | 説明 |
---|---|
00001000 | 呼び出されたメソッドによって、またはクラスの初期化の結果として、例外がスローされました。 |
00001001 | オブジェクトが NULL でした。または指定された ID がオブジェクト・スペース内にありませんでした。 |
00001002 | 指定された名前の public メソッド、フィールド、またはクラスが存在しないか、ロードできません。 |
00001003 | EGL プリミティブ型が、Java で想定される型と同じではありません。 |
00001007 | メソッドまたはフィールドに関する情報の取得中に、SecurityException または IllegalAccessException がスローされました。または、final 宣言されたフィールドの値を設定しようとしました。 |
00001009 | クラス名ではなく、ID を指定する必要があります。メソッドまたはフィールドが静的ではありません。 |
関連する概念
EGL ステートメントおよびコマンドの構文図