setField()

javaLib.setField() システム関数は、ローカル Java™ オブジェクトまたはクラス内のフィールドの値を設定します。これを行うために、EGL は、 そのフィールドのローカル Java「set」メソッドを呼び出します。

javaLib.setField() および類似する関数が実行される、EGL Java オブジェクト・スペースについて詳しくは、『Java アクセス関数』を参照してください。 EGL は、この Java アクセスのメソッドを以前のバージョンとの互換性のために保守します。新規コードの場合は、より強力な ExternalType 構文を使用してください。詳しくは、『ExternalType パーツ』を参照してください。

構文

  javaLib.setField(
    identifierOrClass javaObjId in,
    field STRING in,
    value JavaType in)
identifierOrClass
この引数は、次のエンティティーのいずれかです (大/小文字を区別を区別します)。
  • Java objID (ローカル Java オブジェクトのフィールド値を設定する場合)。
  • クラス名を表すストリング (Java クラスのフィールド値を設定する場合)。

STRING 型との代入互換性のある任意の変数または式を入力できます。 オブジェクトの ID を指定する場合は、後述の例のように、その ID を objID にキャストする必要があります。EGL は、引数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。

field
変更するフィールドの名前 (大/小文字を区別)。STRING 型との代入互換性のある任意の変数または式を入力できます。 ストリングの先頭と最後から、1 バイトのブランクと 2 バイトのブランクが削除されます。
value
値そのもの。キャストが必要になる場合があります。『EGL プリミティブ型の Java へのマッピング』を参照してください。Java の型変換の規則が適用されます。 例えば、int として宣言されたフィールドに short を割り当てても、エラーは発生しません。
以下に示すように、EGL 外部型の値は有効です。
SharedResourcePowerServer srps = JavaLib.getSharedResourcePowerServer();
JavaLib.setField("myId" as "objID:java", "myField", srps);

以下の例では、myId によって識別されたオブジェクト内のフィールド myFieldmyNumField の値に設定します。

  javaLib.setField("myId" as "objID:java", "myField", 
    myNumField as "java:short");

エラーに関する考慮事項

v60ExceptionCompatibility プログラム・プロパティーが設定されていないか、NO に設定されている場合、例外が発生すると、EGL は JavaObjectException をスローします。 その他のエラーが発生した場合は、EGL によって RuntimeException がスローされます。

v60ExceptionCompatibility プログラム・プロパティーが YES に設定されている場合、javaLib.setField() の処理中にエラーが発生すると、sysVar.errorCode は次の表の値に設定されます。

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

フィードバック