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