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


例: COBOL クライアントからの規格合致オブジェクト参照の引数の引き渡し

以下の例は、COBOL クライアントのオブジェクト参照引数を、呼び出されるメソッドに対応する仮パラメーターの予想クラスに合致させる方法を示しています。

クラス C は、1 つのパラメーター (クラス java.lang.Object のオブジェクトへの参照) を持つメソッド M を定義します。

 . . .
 Class-id. C inherits Base.
 . . .
 Repository.
     Class Base       is "java.lang.Object"
     Class JavaObject is "java.lang.Object".
 Identification division.
 Factory.
 . . .
  Procedure Division.
   Identification Division.
   Method-id. "M".
   Data division.
   Linkage section.
   01 obj object reference JavaObject.
   Procedure Division using by value obj.
   . . .

メソッド M を呼び出すには、COBOL クライアントは、クラス java.lang.Object のオブジェクトへの参照である引数を渡す必要があります。 以下のクライアントは、データ項目 aString を定義していますが、これを M に引数として渡すことができません。aString は、クラス java.lang.String のオブジェクトへの参照だからです。 クライアントはまず SET ステートメントを使用して、aString をデータ項目 anObj (クラス java.lang.Object のオブジェクトへの参照) に割り当てます。 (java.lang.String は java.lang.Object のサブクラスなので、この SET ステートメントは正しいものです。) その後クライアントは anObj を引数として M に渡します。

 . . .
 Repository.
     Class jstring    is "java.lang.String"
     Class JavaObject is "java.lang.Object".
 Data division.
 Local-storage section.
 01  aString object reference jstring.
 01  anObj   object reference JavaObject.
*
 Procedure division.
     . . . (statements here assign a value to aString)
     Set anObj to aString
     Invoke C "M"
       using by value anObj

SET ステートメントを使用して、クラス java.lang.Object のオブジェクトへの参照として anObj を取得する代わりに、クライアントは、以下のように REDEFINES 節で aString および anObj を定義することができます。

 . . .
 01  aString object reference jstring.
 01  anObj   redefines aString object reference JavaObject.

クライアントが値をデータ項目 aString (つまり、クラス java.lang.String のオブジェクトへの有効な参照) を割り当てた後、anObj を引数として M に渡すことができます。REDEFINES 節を使用して引数を合致させる例については、以下に参照されている例を参照してください。

例: COBOL で書かれた J2EE クライアント

関連参照
INVOKE ステートメント (Enterprise COBOL 言語解説書)
SET ステートメント (Enterprise COBOL 言語解説書)
REDEFINES 節 (Enterprise COBOL 言語解説書)


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

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