メソッドにより、オブジェクトではなく Java プリミティブが戻された場合、EGL は、プリミティブを表すオブジェクトを保管します。例えば、メソッドで int が戻された場合、EGL は、java.lang.Integer 型のオブジェクトを保管します。
この引き数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、STRING 型、または UNICODE 型の変数のいずれかです。ID は、後述の例のように、objID にキャストする必要があります。EGL は、大文字小文字の区別がある引き数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。
この引き数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、STRING 型、または UNICODE 型の変数のいずれかです。オブジェクトの ID を指定する場合は、後述の例のように、その ID を objID にキャストする必要があります。EGL は、大文字小文字の区別がある引き数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。
この引き数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、STRING 型、または UNICODE 型の変数のいずれかです。オブジェクトの ID を指定する場合は、後述の例のように、その ID を objID にキャストする必要があります。EGL は、大文字小文字の区別がある引き数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。
『Java アクセス (システム・ワード)』に記述したキャストが必要な場合があります。
Java の型変換の規則が適用されます。 例えば、int として宣言されたメソッド・パラメーターに short を渡しても、エラーは発生しません。
精度が失われるのを回避するために、Java の double には EGL の float 項目を使用し、 Java の float には EGL の smallfloat 項目を使用してください。それ以外の EGL の型を使用すると、多くの場合、結果としての値が丸められます。
呼び出し側プログラムのメモリー領域は、メソッドの実行内容にかかわらず、変更されません。
JavaLib.store( (objId)"storeId", (objId)"myId", "myMethod", 36 );
JavaLib.store の処理中にエラーが発生すると、sysVar.errorCode は以下の表の値に設定されます。
sysVar.errorCode の値 | 説明 |
---|---|
00001000 | 呼び出されたメソッドによって、またはクラスの初期化の結果として、例外がスローされました。 |
00001001 | オブジェクトが NULL でした。または指定された ID がオブジェクト・スペース内にありませんでした。 |
00001002 | 指定された名前の public メソッド、フィールド、またはクラスが存在しないか、ロードできません。 |
00001003 | EGL プリミティブ型が、Java で想定される型と同じではありません。 |
00001006 | NULL へキャストする引き数のクラスをロードできませんでした。 |
00001007 | メソッドまたはフィールドに関する情報の取得中に、SecurityException または IllegalAccessException がスローされました。または、final 宣言されたフィールドの値を設定しようとしました。 |
00001009 | クラス名ではなく、ID を指定する必要があります。メソッドまたはフィールドが静的ではありません。 |
関連する概念
関連するタスク