Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


オブジェクト参照の比較および設定

条件ステートメントまたは JNI サービス IsSameObject の呼び出しをコーディングすることによってオブジェクト参照を比較できます。 また、SET ステートメントを使用して、オブジェクト参照を設定できます。

例えば、次の IF ステートメントのいずれかを コーディングして、オブジェクト参照 anAccount がオブジェクト・インスタンスを まったく参照していないことをチェックします。

If anAccount = Null . . .
If anAccount = Nulls . . .

IsSameObject の呼び出しをコーディングして、2 つのオブジェクト参照 (object1 と object2) が同じオブジェクト・インスタンスを指すかどうか、あるいはそれぞれがオブジェクト・インスタンスを指さないかどうかを検査することができます。 引数および戻り値が Java と相互運用可能であることを確認し、呼び出し可能サービスへのアドレス可能度を確立するには、IsSameObject への呼び出しの前に、 以下のデータ定義およびステートメントをコーディングします。

Local-storage Section.
. . .
01  is-same Pic X.
    88 is-same-false Value X'00'.
    88 is-same-true  Value X'01' Through X'FF'.
Linkage Section.
    Copy JNI.
Procedure Division.
    Set Address Of JNIEnv To JNIEnvPtr
    Set Address Of JNINativeInterface To JNIEnv
    Call IsSameObject Using By Value JNIEnvPtr object1 object2
                      Returning is-same
    If is-same-true . . .

メソッド内では、オブジェクト参照と SELF を比較する IsSameObject の呼び出しをコーディングすることにより、メソッドが呼び出されたオブジェクト・インスタンスをオブジェクト参照が指すかどうかを検査できます。

上記の代わりに、Java equals メソッド (java.lang.Object からの継承) を呼び出して、2 つのオブジェクト参照が同一のオブジェクト・インスタンスを 参照するかを決定することができます。

SET ステートメントを使用することにより、オブジェクト参照がオブジェクト・インスタンスを指さないようにすることができます。 以下に例を示します。

Set anAccount To Null.

また、SET ステートメントを使用して、1 つのオブジェクト参照が 別のオブジェクト参照と同じインスタンスを参照するように設定することもできます。以下に例を示します。

Set anotherAccount To anAccount.

この SET ステートメントに よって、anotherAccount は anAccount と同じオブジェクト・インスタンスを参照します。受け取り側 (anotherAccount) が汎用オブジェクト参照である場合、送り出し側 (anAccount) は、汎用オブジェクト参照か、または型式化オブジェクト参照のどちらかになります。受け取り側が型式化オブジェクト参照である場合は、送り出し側も、受け取り側と同じクラス、または、そのサブクラスのいずれか 1 つにバインドされた、型式化オブジェクト参照でなければなりません。

メソッド内では、オブジェクト参照を SELF に設定して、メソッドが呼び出されたオブジェクト・インスタンスをオブジェクト参照が参照するように 設定することができます。以下に例を示します。

Set anAccount To Self.

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)