getField()

システム関数 JavaLib.getField は、指定されたオブジェクトまたはクラスの、指定されたフィールドの値を戻します。 JavaLib.getField は、Java™ アクセス関数の 1 つです。

  JavaLib.getField(
    identifierOrClass javeObjIdOrClass in,
    field STRING in)
  returns (result anyJavaPrimitive)
result
結果フィールドは、必須であり、2 番目の引数で指定されたフィールドの値を受け取ります。次のことが該当します。
  • 受け取る値が BigDecimal、BigInteger、byte、short、int、long、float、または double の場合、結果フィールドは数値データ型でなければなりません。特性は値と同じである必要はありません。 例えば、float は、小数桁数なしで宣言された戻り変数に保管できます。オーバーフロー処理の詳細については、 『VGVar.handleOverflow』および『sysVar.overflowIndicator』を参照してください。
  • 受け取る値がブール値の場合、結果フィールドは、数値プリミティブ型でなければなりません。値は、真の場合は 1、偽の場合は 0 です。
  • 受け取る値がバイト配列の場合、結果フィールドは、HEX 型でなければなりません。長さが一致しない場合については、『代入』を参照してください。
  • 受け取る値が String または char の場合、結果フィールドは、CHAR 型、DBCHAR 型、MBCHAR 型、STRING 型、または UNICODE 型でなければなりません。
    • 結果フィールドが MBCHAR 型、STRING 型、または UNICODE 型である場合、受け取る値は常に適切な値になります。
    • 結果フィールドが CHAR 型の場合、受け取る値に DBCHAR 文字に相当する文字が含まれていると、問題が発生することがあります。
    • 結果フィールドが DBCHAR 型の場合、受け取る値に 1 バイト文字に相当するユニコード文字が含まれていると、問題が発生することがあります。

    長さが一致しない場合については、『代入』を参照してください。

  • ネイティブ Java メソッドが値を戻さないか、または NULL を戻す場合は、エラー 00001004 (後述) が発生します。
identifierOrClass
この引数は、次のエンティティーのいずれかです。
  • オブジェクト・スペース内のオブジェクトを参照する ID
  • Java クラスの完全修飾名

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

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

field
読み取るフィールドの名前。

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

以下に例を示します。
  myVar = JavaLib.getField( (objId)"myID", "myField" );

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

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

関連する概念

関連するタスク
EGL ステートメントおよびコマンドの構文図

関連する参照項目
代入
BIN および整数型
EGL ライブラリー JavaLib
例外処理

invoke()
isNull()
isObjID()
qualifiedTypeName()
remove()
removeAll()
setField()
store()
storeCopy()
storeField()
storeNew()

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005.