COBOL から Java にデータを送信するときには、そのデータが適切な Java データ型に変換されます。同様に、Java プログラムが COBOL にデータを返信するときにも、Java データ型から COBOL データ型への変換が行われます。次の表は、Java と COBOL の間でデータがやり取りされるときに行われる型変換を示しています。データ型の場合は、手続き型 COBOL と OO COBOL Java ドメインのどちらを使っているかによって処理結果が異なります。表中の「COBOL」欄は、.cobcall(…) で手続き型 COBOL に適用される規則、「オブジェクト COBOL」欄は .cobinvoke() でオブジェクト COBOL Java ドメインに適用される規則を示しています。
| Java データ型 | COBOL | Object COBOL | 説明 | 
|---|---|---|---|
| byte | pic s99 comp-5 |  pic s99 comp-5 pic s99 comp  | 
 
				1 バイトの符号付き整数 | 
| short | pic s9(4) comp-5 |  pic s9(4) comp-5 pic s9(4) comp  | 
 
				2 バイトの符号付き整数 | 
| int | pic s9(9) comp-5 |  pic s9(9) comp-5 pic s9(9) comp  | 
 
				4 バイトの符号付き整数 | 
| long | pic s9(18) comp-5 |  pic s9(18) comp-5 pic s9(18) comp1  | 
 
				8 バイトの符号付き整数 | 
| boolean | pic 99 comp-5 | pic 99 comp-5 | 0 は false、0 以外の値は true | 
| char (Unicode) | pic 9(4) comp-5 | pic s9(4) comp | Java の文字はすべて、2 バイトの Unicode 文字で表される。 | 
| float | comp-11 | comp-1 1 | 浮動小数点数値 | 
| double | comp-2 1 | comp-2 1 | 倍精度浮動小数点数値 | 
| String |  mf-jstring2 pointer3  | 
 
				pic x(n) | 容量は常に 0。COBOL プログラムに渡される文字列は読み取り専用で、変更できないものと考える必要がある。 | 
| StringBuffer4 |  mf-jstring 2 pointer 3  | 
 
				pic x(n) | 容量はバッファーの合計サイズ、サイズはバッファーに格納されている文字列の長さとなる。 | 
| object | pointer | object reference | あらゆる Java オブジェクト。手続き型 COBOL では、返されたポインターを JNI 呼び出しに使用できる (「Java からの手続き型 COBOL の呼び出し」の章の「COBOL での JNI の使用」を参照)。 | 
| object[] | pointer | jarray クラスのインスタンスへのオブジェクト参照 | Java オブジェクトの配列。手続き型 COBOL では、返されたポインターを JNI 呼び出しに使用できる (「Java からの手続き型 COBOL の呼び出し」の章の「COBOL での JNI の使用」を参照)。jarray は、Java 配列の内容にアクセスするための OO COBOL クラス (「Jarray クラスの使用方法」の項を参照)。 | 
| DataType | structure | structure | 複合データ構造体 | 
| Comp3 | comp-3 | comp-3 | COMP(UTATIONAL)-3 または PACKED-DECIMAL | 
|  Pointer(StringBuffer) Pointer(String, int capacity)  | 
 
				pic x(99) | pic x(99) |  String や StringBuffer をラップすることによって、正しいサイズが割り当ててられた状態で COBOL プログラムに渡し、COBOL 側で Java オブジェクトを安全に編集できるようにする。 StringBuffer の容量は、COBOL 側で編集可能な最大長として使用される。  | 
 
			 
|  java.sql.Date(long) 
				   CobolDate(date)  | 
 
				 0x jyear pic 9(4). 
				   0x filler pic x. 0x jmonth pic 99. 0x filler pic x. 0x jday pic 99.  | 
 
				cobcall と同じ | JDBC で使用される標準 SQL Date 型 | 
|  java.sql.time(long) 
				   CobolTime(time)  | 
 
				 0x jhour pic 99. 
				   0x filler pic x. 0x jminute pic 99. 0x filler pic x. 0x jseconds pic 99.  | 
 
				cobcall と同じ | JDBC で使用される標準 SQL Time 型 | 
|  
				   CobolBigDecimal(java.math.BigDecimal)  | 
 
				pic s9(19)v9(19) comp-3 | cobcall と同じ | COBOL 側での BigDecimal 値の更新を可能にする CobolBigDecimal ラッパークラス。CobolBigDecimal() のコンストラクターは初期値をとる。更新後の値を取得するには、getValue() メソッドを使用する。 | 
|  
				   CobolBigInteger(java.math.BigInteger)  | 
 
				pic S9(38) comp-3 | cobcall と同じ | COBOL 側での BigInteger 値の更新を可能にする CobolBigInteger ラッパークラス。CobolBigInteger() のコンストラクターは初期値をとる。更新後の値を取得するには、getValue() メソッドを使用する。 | 
| CustomRecord | Structure | Structure | Java でオブジェクト配列として表される、複合データ構造体 | 
| CobolN ational | pic x(n) (usage 句に national を使用) | cobcall と同じ | UTF-16 文字列を生成して COBOL に渡すための Java クラス。 | 
|  
				   1 このパラメーターは参照渡しのみです。浮動小数点データ型の場合は、この制約が適用されるのは UNIX プラットフォームに限定されます。long データ型の場合は、32 ビット プラットフォームでは参照渡しのみ、64 ビット プラットフォームでは参照渡しと値渡しが可能です。 2 .cobcall(...) で mf-jstring を使用します。受信側の COBOL プログラムで Java の String または StringBuffer にアクセスするには、ptr2string ポインターを使用する必要があります。mf-jstring を使用すると、COBOL プログラムから Java オブジェクトのサイズと容量にアクセスできます。 3 .cobcall(...) でポインターを使用します。 4 StringBuffer オブジェクトは、pic x(n) データ項目として OO COBOL メソッドで受け取れますが、pic x(n) を使用して StringBuffer パラメーターを含む Java メソッドにデータを渡すことはできません。  | 
 
			 |||
「COBOL データ型」欄と「OO COBOL データ型」欄のどちらにも含まれない COBOL データ型への変換は、サポートされていません。ここに挙げられていない型の COBOL データ項目を使用するには、サポートされる型の中間データ項目を使用して、必要なデータ項目の中間データ項目との間でデータを転記します。