storeNew()

システム関数 JavaLib.storeNew は、クラスのコンストラクターを呼び出し、新しいオブジェクトを EGL Java™ オブジェクト・スペースに格納します。ID が既にオブジェクト・スペース内に存在している場合は、次のステップと同等のアクションが実行されます。

JavaLib.storeNew は、Java アクセス関数の 1 つです。

  JavaLib.storeNew(
    storeId javaObjId in,
    class STRING in
    {, argument anyEglPrimitive in})
storeId
新しいオブジェクトとともに保管する ID。

この引数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、UNICODE 型の項目です。ID は、後述の例のように、objID にキャストする必要があります。EGL は、大/小文字の区別がある引数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。

class

Java クラスの完全修飾名

この引数は、文字列リテラル、または CHAR 型、DBCHAR 型、MBCHAR 型、UNICODE 型の項目です。EGL は、大/小文字の区別がある引数値の先頭と最後から、1 バイトのブランクと 2 バイトのブランクを削除します。

argument
コンストラクターに渡される値。

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 文およびコマンドの構文図

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.