ネイティブ COBOL プログラムは、CALL 文の特定の構文引数を介して静的 Java メソッドと相互運用できます。この引数には、次のようにパッケージ、クラス、メソッド名を指定します。
... CALL "Java.com.mf.widgets$Timers.Clock2.Alarm1" using grp1 returning res-1 ...
ここで com.mf.widgets はクラスが属するパッケージ、Timers は外部クラスの名前、Clock2 はメソッドを含むクラスの名前、Alarm1 は呼び出す静的メソッドの名前です。メソッドに渡す引数は grp1 で、メソッドは res-1 に値を返します。これらの引数は両方とも、「COBOL 項目と Java 型のマッピング」に従って、互換性のある Java 型にマップされます。それ以外の場合は、コンパイル中にエラーが生成されます。
コンパイラは、呼び出しリテラル内に「Java」というプレフィックスを見つけると、その呼び出しを Java メソッドへの呼び出しだと自動的に認識します。内部で Java 型をマップするプロセスを呼び出し、生成されたメソッド シグネチャと一致するメソッドを識別して、実行します。
このプロセスはメソッドのオーバーロードもサポートしており、呼び出されるクラスには、特定のメソッドがさまざまに実装されています。CALL 文で指定する引数の数および型によって、どのメソッドが使用されるか決まります。
01 num1 pic 9(9) comp-5 occurs 10.
これは int[10] にマップされます。
コマンド ラインから Java 静的メソッドを呼び出す COBOL プログラムの実例については、「例 1 - COBOL での Java 静的メソッドの呼び出し」を参照してください。同様の処理を IDE 内から行う例については、「IDE 内での Java の相互運用」を参照してください。