JVM COBOL 相互運用のバイト配列

JVM COBOL では、バイト配列は、JVM 専用タイプ java.lang.Byte[] を使用して保存されます。バイト配列は、01 レベルで COBOL テーブルとして宣言する必要があります。サイズは 01 定義の一部として定義できます。あるいは、ANY キーワードを使用して定義しないでおくこともできます。次に例を示します。

 01 b java.lang.Byte occurs any.

バイト型配列はオブジェクトですが、ネイティブ エントリ ポイントのリファレンスで渡すことができます。これは、一次元配列にのみ適用されます。

配列に含まれるバイトは、同じサイズのネイティブ メモリのセクションに変更されずにコピーされ、この一部のメモリに対するリファレンスがネイティブ コードに渡されます。これは、COBOL では pic x データに相当し、C では char* データに相当します。次に例を示します。

JVM COBOL:

 01 b java.lang.Byte occurs any. 
 01 i binary-long. 
 01 b-ptr procedure-pointer.
 set size of b to 1024
 perform varying i from 1 by 1 until i > 1024 
   set b(i) to i /8 
 end-perform 
 set b-ptr to entry "doStuff"
 call "doStuffWith1k" using by reference b

ネイティブ COBOL:

 linkage section. 
 01 b pic x(1024). 
 ... 
 entry "doStuffWith1k" using by reference b. 
 ...