Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


メソッドの呼び出し (INVOKE)

Java クライアントでは、COBOL でインプリメントされたクラスのオブジェクト・インスタンスを作成し、それらのオブジェクトで標準の Java 構文を使用してメソッドを呼び出すことができます。 COBOL クライアントでは、INVOKE ステートメントをコーディングすることにより、Java または COBOL クラスで定義されたメソッドを呼び出すことができます。

Invoke Account “createAccount”
   using by value 123456
   returning anAccount
Invoke anAccount “credit” using by value 500.

上記に示された最初の例の INVOKE ステートメントは、クラス名 Account を使用して、createAccount という名前のメソッドを呼び出します。このメソッドは Account クラスで定義または継承されている必要があり、次のいずれかの型でなければなりません。

using by value 123456 という句は、123456 が、値により受け渡されるメソッドの入力引数であることを表します。入力引数 123456 と戻されるデータ項目 anAccount は、(多重定義されているかもしれない) createAccount メソッドの仮パラメーターおよび戻りの型の定義に それぞれ準拠している必要があります。

2 番目の INVOKE ステートメントは、戻されるオブジェクト参照 anAccount を使用して、インスタンス・メソッド credit (Account クラスに定義されている) を呼び出します。入力引数 500 は、(おそらく多重定義された) credit メソッドの 仮パラメーターの定義に準拠しなければなりません。

実行時におけるその値がターゲット・メソッドのシグニチャー内のメソッド名と一致するリテラルとして、または ID として呼び出すメソッドの名前をコーディングします。メソッド名は、英数字または国別リテラルであるか、あるいはカテゴリー英字、英数字、または国別のデータ項目でなければならず、解釈されるときには大/小文字が区別されます。

INVOKE ステートメントを (上記の 2 番目の例のステートメントのように) オブジェクト参照を使用してコーディングする場合、そのステートメントは次の 2 つの形式のうちのいずれかで始まります。

Invoke objRef “literal-name”  . . .
Invoke objRef identifier-name . . .

メソッド名が ID である場合には、オブジェクト参照 (objRef) を、指定する型の ない USAGE OBJECT REFERENCE として、すなわち、汎用オブジェクト 参照として、定義しなければなりません。

オブジェクト参照の参照先のクラスで、呼び出したメソッドがサポートされない場合、INVOKE ステートメントの ON EXCEPTION 句をコーディングしていないときには、重大なエラー条件が実行時に発生します。

オプションの範囲終了符号 END-INVOKEINVOKE ステートメントで使用することができます。

INVOKE ステートメントは、RETURN-CODE 特殊レジスターを設定しません。

関連タスク
引数の引き渡し用の USING 句
戻り値の取得用の RETURNING 句
クラス・インスタンス・メソッド定義用の PROCEDURE DIVISION
COBOL および Java での相互運用可能なデータ型のコーディング
オーバーライドされたスーパークラス・メソッドの呼び出し
ファクトリー・メソッドまたは静的メソッドの呼び出し

関連参照
INVOKE ステートメント (「COBOL for Windows 言語解説書」)


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

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